集成测试中的golang代码覆盖率?

似乎“go tool cover -var=foo”的重点可能是生成可以部署在集成测试工具中的检测代码。是否有人为此目的使用此功能?如果是这样,是否有定期转储计数器的常规方法?似乎棘手的部分是以几乎同时的方式在所有感兴趣的文件中执行此操作。即便如此,一些偏差(如果使用 -mode=count)也是不可避免的。


慕桂英546537
浏览 213回答 1
1回答

慕田峪4524236

我们使用它从各种测试中收集代码覆盖率,以获得跨测试的单一代码覆盖率数字,并查看未覆盖的代码路径 * 模块测试 * 集成测试 * 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你终于有了一个覆盖文件,它可以让你完整地了解各种覆盖范围的代码覆盖情况。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go