It seems the point of "go tool cover -var=foo" may be to generate instrumented code that can be deployed in an integration test harness. Is anyone using this feature for that purpose? If so, is there a conventional way to dump the counters periodically? It seems the tricky part would be doing this across all files of interest with near simultaneity. Even then, some skew (if using -mode=count) would be unavoidable.
1条回答 默认 最新
- douchun6108 2019-04-11 20:43关注
We use this to collect code coverage from our various tests to get a single code coverage number across the tests and to see the uncovered code paths * Module tests * Integration tests * UI tests * API tests * unit tests
The way to achieve this is
-
Build an instrumented binary (app.debug) with coverage enables. The below command generates an app.debug with coverage instrumentation enabled
$ go test -c -covermode=atomic -coverpkg="pkg/path/..." -o app.debug
-
Use this app.debug instead of your app in the tests and run tests against it. Ours is an HTTP server but this should work for most applications. Each test generates a seperate cov file which later needs to be merged.
$ ./app.debug -test.coverprofile=functest.cov -- app.params
-
Merge all the test cov files to get a single cov file .For this, you can use gocovmerge
$ find $COVERAGE_DIR -name *.cov | xargs gocovmerge > final.cov
And you have finally a coverage file which gives you complete picture of code coverage from all sorts of coverage.
解决 无用评论 打赏 举报 -
悬赏问题
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)