似乎“go tool cover -var=foo”的重点可能是生成可以部署在集成测试工具中的检测代码。是否有人为此目的使用此功能?如果是这样,是否有定期转储计数器的常规方法?似乎棘手的部分是以几乎同时的方式在所有感兴趣的文件中执行此操作。即便如此,一些偏差(如果使用 -mode=count)也是不可避免的。
1 回答
![?](http://img1.sycdn.imooc.com/545862370001b03502200220-100-100.jpg)
慕田峪4524236
TA贡献1875条经验 获得超5个赞
我们使用它从各种测试中收集代码覆盖率,以获得跨测试的单一代码覆盖率数字,并查看未覆盖的代码路径 * 模块测试 * 集成测试 * UI 测试 * API 测试 * 单元测试
实现这一目标的方法是
构建启用覆盖的检测二进制文件 (app.debug)。下面的命令生成一个启用了覆盖检测的 app.debug
$ go test -c -covermode=atomic -coverpkg="pkg/path/..." -o app.debug
在测试中使用此 app.debug 而不是您的应用程序并针对它运行测试。我们是一个 HTTP 服务器,但这应该适用于大多数应用程序。每个测试都会生成一个单独的 cov 文件,稍后需要合并该文件。
$ ./app.debug -test.coverprofile=functest.cov -- app.params
合并所有测试 cov 文件以获得单个 cov 文件。为此,您可以使用gocovmerge
$ find $COVERAGE_DIR -name *.cov | xargs gocovmerge > final.cov
你终于有了一个覆盖文件,它可以让你完整地了解各种覆盖范围的代码覆盖情况。
- 1 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消