首页 >后端开发 >Golang >如何准确获取不同文件夹中的 Go 代码覆盖率?

如何准确获取不同文件夹中的 Go 代码覆盖率?

Barbara Streisand
Barbara Streisand原创
2024-11-26 15:29:09459浏览

How Can I Get Accurate Go Code Coverage Across Separate Folders?

在 Golang 中检测跨单独文件夹的代码覆盖率

在结构如下的项目中:

stuff/stuff.go -> package: stuff
test/stuff/stuff_test.go -> package: test

当执行 stuff_test,stuff.go 的代码覆盖率报告为 0.0%。将 *_test.go 移入 stuff 文件夹解决了该问题,但它引发了有关项目结构和 Go 最佳实践的问题。

通过 -coverpkg 标志解决

至要在不修改项目结构的情况下解决这种情况,请使用 -coverpkg 标志。此标志允许指定要包含在覆盖率分析中的包。

对于给定的项目结构,命令变为:

go test ./test/... -coverprofile=cover.out -coverpkg ./...

此命令分析 ./test/. .. 覆盖范围信息的路径,包括匹配 ./....

生成和查看覆盖范围的包报告

执行测试后,使用 go tool cover 生成覆盖率报告:

go tool cover -html=cover.out

这将创建一个 HTML 报告,详细说明所分析包的覆盖率信息,提供深入了解项目文件夹中的代码覆盖率。

以上是如何准确获取不同文件夹中的 Go 代码覆盖率?的详细内容。更多信息请关注PHP中文网其他相关文章!

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