为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
慕田峪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

你终于有了一个覆盖文件,它可以让你完整地了解各种覆盖范围的代码覆盖情况。


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信