解决 GO 项目单独文件夹中的代码覆盖率差异
在处理具有特定结构的项目时,其中包及其测试位于单独的文件夹中,您遇到了问题。尽管执行了 stuff_test.go 中的 stuff.go 中的代码,但覆盖率报告显示为 0.0%。
可能的原因和解决方案
问题的出现是由于 GO 的默认设置覆盖率分析行为,仅适用于正在测试的包。为了克服这个问题,可以使用 -coverpkg 标志来指定应收集覆盖率数据的包。
通过使用 -coverpkg 选项,您可以指定 test/stuff/stuff_test.go 中的测试应该还要考虑 stuff/stuff.go 的代码覆盖率。这可确保覆盖率分析涵盖所有相关包。
这是一个示例命令,演示了 -coverpkg 的用法:
go test ./test/... -coverpkg ./...
此命令在与测试路径匹配的包中运行测试,并包括所有匹配 ./....
查看覆盖范围的包的覆盖范围信息报告
执行测试后,您可以使用以下命令生成并查看覆盖率报告:
go tool cover -html=cover.out
此命令生成名为 cover.out 的 HTML 覆盖率报告,可以在网络浏览器中打开它以可视化覆盖数据。
以上是尽管在单独的文件夹中成功执行了测试,为什么我的 Go 代码覆盖率显示为 0%?的详细内容。更多信息请关注PHP中文网其他相关文章!