顯示無盲點的功能測試覆蓋率
問題:
解決方案:
為了編寫沒有盲點的覆蓋率配置文件,建議從測試中排除main.go 文件。這可以使用建立標籤來完成,方法是將行 // build !test 新增到 main.go 檔案的頂部。這將指示 Go 編譯器在測試建置期間忽略該檔案。 以下是包含此方法的範例程式碼的修改版本:<code class="go">// dofunc.go package main import ( "fmt" "math/rand" "time" ) var seed int64 = time.Now().UTC().UnixNano() func doFunc() int { rand.Seed(seed) var code int for { i := rand.Int() fmt.Println(i) if i%3 == 0 { code = 0 break } if i%2 == 0 { fmt.Println("status 1") code = 1 break } time.Sleep(time.Second) } return code } // main.go //+build !test package main import "os" func main() { os.Exit(doFunc()) } // dofunc_test.go package main import ( "testing" "flag" "os" ) var exitCode int func TestMain(m *testing.M) { flag.Parse() code := m.Run() os.Exit(code) } func TestDoFuncErrorCodeZero(t *testing.T) { seed = 2 if code := doFunc(); code != 0 { t.Fail() } } func TestDoFuncErrorCodeOne(t *testing.T) { seed = 3 if code := doFunc(); code != 1 { t.Fail() } }</code>
用法:
以上是如何在與編譯的 Go 二進位檔案互動的功能測試中實現全面的覆蓋率設定檔而沒有盲點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!