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