如何测量 Go 中的测试覆盖率
软件测试中的挑战之一是确定测试覆盖被测代码的程度。这个指标称为测试覆盖率,对于确保测试全面有效至关重要。
Go 的测试覆盖率能力
在 Go 版本 1.2 及更高版本中,go test命令现在支持测试覆盖率结果的计算和显示。要启用覆盖率,只需在运行测试时使用 -cover 标志即可。
go test -cover
这将生成基本的覆盖率报告,指示测试覆盖的语句的百分比。
详细的覆盖率分析
有关更详细的覆盖率报告,请使用 -coverprofile 标志指定将包含覆盖率配置文件的输出文件。然后可以使用 go tool cover 命令分析此配置文件。
go test -coverprofile=coverage.out go tool cover -html=coverage.out
-html 标志生成一个 HTML 报告,提供覆盖范围的可视化表示,突出显示未覆盖的行。
黑盒测试
测量黑盒测试的覆盖率(无法访问内部状态的测试)包),使用 -coverpkg 标志。此标志指定应检测覆盖率的包。
go test -coverprofile=.coverage.html -coverpkg=your/pkg your/pkg/pkg_test
最近的增强
在 Go 1.20 中,集成测试现在可以包含在覆盖率分析中。 go build -cover 命令可用于构建覆盖率检测的二进制文件。然后可以在集成测试中使用这些二进制文件来扩展覆盖测试的范围。
以上是如何衡量 Go 中的测试覆盖率?的详细内容。更多信息请关注PHP中文网其他相关文章!