首页 >后端开发 >Golang >尽管在单独的文件夹中成功执行了测试,为什么我的 Go 代码覆盖率显示为 0%?

尽管在单独的文件夹中成功执行了测试,为什么我的 Go 代码覆盖率显示为 0%?

Patricia Arquette
Patricia Arquette原创
2024-11-28 10:59:11821浏览

Why Is My Go Code Coverage Showing 0% Despite Successful Test Execution in Separate Folders?

解决 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn