有没有人成功生成 Go 单元测试的代码覆盖率?我无法在网络上找到适用于此的工具。
原文由 Georgi Atsev 发布,翻译遵循 CC BY-SA 4.0 许可协议
有没有人成功生成 Go 单元测试的代码覆盖率?我无法在网络上找到适用于此的工具。
原文由 Georgi Atsev 发布,翻译遵循 CC BY-SA 4.0 许可协议
Go 带有很棒的测试和覆盖工具。尽管所有 Go 工具都有很好的文档记录 go tool cover -help
我建议阅读 官方 Go 博客上的封面故事文章。它有很多例子,我强烈推荐它!
我的 ~/.bash_profile 中有这个功能。 (您可以将其粘贴到终端中试一试)。
cover () {
t="/tmp/go-cover.$$.tmp"
go test -coverprofile=$t $@ && go tool cover -html=$t && unlink $t
}
然后只需 cd
进入项目/包文件夹并输入 cover
。这将在浏览器中打开一个可视化工具,向您显示当前包中每个文件的已测试和未测试代码。非常有用的命令!我强烈推荐它用于查找尚未 100% 测试的内容!显示的结果是每个文件。从左上角的下拉列表中,您可以看到所有文件的结果。
使用此命令,您还可以检查任何包的覆盖范围,例如:
cover fmt
此命令在终端中的输出将是:
ok fmt 0.031s coverage: 91.9% of statements
除了在您的浏览器中,您还会看到此工具以红色显示所有未包含在测试中的代码行:
也可以只保存 html 覆盖文件而不是在浏览器中打开它。当您的测试+覆盖率由 Jenkins 等 CI 工具运行时,这非常有用。这样你就可以从中央服务器提供覆盖率文件,整个团队将能够看到每个构建的覆盖率结果。
原文由 Pavel Nikolov 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
请注意, Go 1.2(2013 年第 4 季度,rc1 可用) 现在将显示 测试覆盖率结果:
Frank Shearar 提到:
Ivan Black 在评论 中提到:
更新 2022,可能用于 Go 1.19