确定 Golang 集成测试的测试覆盖率
当测试位于服务外部时,测量 Golang 中集成测试的测试覆盖率可能会带来挑战已测试。在没有适当指令的情况下使用 go test -cover 可能会导致覆盖率统计不准确。
解决方案:利用 -coverpkg 指令
-coverpkg 指令通过允许解决此问题您可以指定要测量覆盖率的包,无论测试是否是该包的一部分。下面是一个测量 mypackage 包覆盖率的示例:
$ go test -cover -coverpkg mypackage ./src/api/...
此命令将专门提供 mypackage 包的覆盖率统计信息,不包括使用它但不属于它的一部分的测试。
比较覆盖率报告
通过比较使用和不使用 -coverpkg 指令生成的覆盖率报告,您可以评估目标包上的集成测试所实现的实际覆盖率。
示例:
不带 -coverpkg:
$ go test -cover ./src/api/... ok /api 0.191s coverage: 71.0% of statements ok /api/mypackage 0.023s coverage: 0.7% of statements
带-coverpkg:
$ go test -cover -coverpkg mypackage ./src/api/... ok /api 0.190s coverage: 50.8% of statements in mypackage ok /api/mypackage 0.022s coverage: 0.7% of statements in mypackage
在上面的示例中,mypackage 包的覆盖范围为使用 -coverpkg 时减少到 50.8%,表明集成测试没有完全覆盖目标包的代码。这些信息可以指导您进一步增强集成测试,以实现更全面的覆盖。
以上是如何准确衡量外部包的Golang集成测试覆盖率?的详细内容。更多信息请关注PHP中文网其他相关文章!