首页 > 后端开发 > Golang > 正文

为什么在跨单独文件夹进行测试时,我的 Go 代码覆盖率报告显示 0%?

Patricia Arquette
发布: 2024-11-25 09:55:12
原创
600 人浏览过

Why Does My Go Code Coverage Report Show 0% When Testing Across Separate Folders?

调试单独的 Go 文件夹中的代码覆盖率不一致

在 Go 项目中的不同文件夹中对代码进行单元测试时,您可能会遇到代码覆盖率报告的差异。这可能会令人沮丧,因为您可能希望在子文件夹中运行测试时覆盖所有代码。

问题:

尽管从stuff_test 文件夹中,覆盖率报告显示覆盖的语句为 0%。涉及以下项目结构:

stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test
登录后复制

可能原因:

代码覆盖率分析默认仅限于正在测试的包。在这种情况下,stuff_test 包位于与 stuff 包不同的文件夹中,这导致了问题。

解决方案:

要解决此问题,您可以使用运行 go test 时的 -coverpkg 选项。此选项允许您指定要收集覆盖率信息的包。

go test ./test/... -coverprofile=cover.out -coverpkg ./...
登录后复制

此命令将对与指定模式匹配的所有包应用覆盖率分析,在本例中是当前目录及其子目录。

查看覆盖率报告:

测试运行后,您可以使用 go tool cover 命令生成覆盖率报告。

go tool cover -html=cover.out
登录后复制

此命令将创建一个名为 cover.out 的 HTML 报告,您可以在 Web 浏览器中打开该报告以查看所有指定的覆盖率信息包裹。

以上是为什么在跨单独文件夹进行测试时,我的 Go 代码覆盖率报告显示 0%?的详细内容。更多信息请关注PHP中文网其他相关文章!

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