Go语言中必须通过所有测试才能获取代码覆盖率吗?
在Go测试失败时获取代码覆盖率的方法
在Go中,默认情况下go test -cover会在测试失败时跳过覆盖率统计的输出,但你可以通过以下方式强制生成覆盖率数据,无论测试用例是否通过:
生成覆盖率文件:
使用-coverprofile参数指定输出文件,命令如下:go test -coverprofile=cover.out ./...这条命令会将覆盖率数据写入
cover.out文件中——哪怕有测试用例失败,已执行测试对应的覆盖率数据依然会被完整记录。查看覆盖率报告:
生成HTML可视化报告(直观查看代码覆盖情况):go tool cover -html=cover.out或者查看函数级的覆盖率统计(文本格式):
go tool cover -func=cover.out
如果你的测试用例较多且使用了-failfast参数提前终止测试,cover.out只会包含截至终止前已执行测试的覆盖率数据,这依然能帮你分析已运行部分的代码覆盖情况。
内容的提问来源于stack exchange,提问作者cxc
相关产品推荐
相关产品推荐

