在 Go 测试覆盖范围中忽略生成的文件
当测试包含带有“DO NOT EDIT”注释的生成文件的 Go 包时,不希望这些文件影响测试覆盖率计算。以下是解决此问题的方法:
使用带有 -coverprofile 标志的标准 go test 命令,通常会跨包中的所有文件(包括生成的文件)计算测试覆盖率。要从覆盖率报告中排除生成的文件:
-
生成覆盖率配置文件:运行 go test 。 -coverprofile cover.out.tmp。这会生成一个临时覆盖率配置文件 cover.out.tmp。
-
过滤生成的文件: 使用类似 cat cover.out.tmp | 的命令grep -v "_ generated.go" > > cover.out 创建一个新的配置文件 cover.out,排除以“_ generated.go”结尾的文件。
-
分析覆盖率: 执行工具 cover -func cover.out 生成覆盖率报告排除生成的文件。
-
(可选)自动化流程: 在管道或 makefile 中实现此流程无缝集成。
通过执行以下步骤,您可以有效地计算 Go 包的覆盖率,根据需要排除生成的文件。
以上是如何从 Go 测试覆盖率计算中排除生成的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!