似乎“go tool cover -var=foo”的重點可能是生成可以部署在集成測試工具中的檢測代碼。是否有人為此目的使用此功能?如果是這樣,是否有定期轉儲計數(shù)器的常規(guī)方法?似乎棘手的部分是以幾乎同時的方式在所有感興趣的文件中執(zhí)行此操作。即便如此,一些偏差(如果使用 -mode=count)也是不可避免的。
1 回答

慕田峪4524236
TA貢獻1875條經(jīng)驗 獲得超5個贊
我們使用它從各種測試中收集代碼覆蓋率,以獲得跨測試的單一代碼覆蓋率數(shù)字,并查看未覆蓋的代碼路徑 * 模塊測試 * 集成測試 * UI 測試 * API 測試 * 單元測試
實現(xiàn)這一目標的方法是
構建啟用覆蓋的檢測二進制文件 (app.debug)。下面的命令生成一個啟用了覆蓋檢測的 app.debug
$ go test -c -covermode=atomic -coverpkg="pkg/path/..." -o app.debug
在測試中使用此 app.debug 而不是您的應用程序并針對它運行測試。我們是一個 HTTP 服務器,但這應該適用于大多數(shù)應用程序。每個測試都會生成一個單獨的 cov 文件,稍后需要合并該文件。
$ ./app.debug -test.coverprofile=functest.cov -- app.params
合并所有測試 cov 文件以獲得單個 cov 文件。為此,您可以使用gocovmerge
$ find $COVERAGE_DIR -name *.cov | xargs gocovmerge > final.cov
你終于有了一個覆蓋文件,它可以讓你完整地了解各種覆蓋范圍的代碼覆蓋情況。
- 1 回答
- 0 關注
- 233 瀏覽
添加回答
舉報
0/150
提交
取消