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

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

Patricia Arquette
发布: 2024-11-28 10:59:11
原创
819 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板