要在Bazel覆盖率报告中排除特定文件,可以使用--instrumentation_filter
标志来指定要排除的文件或目录。
以下是一个示例解决方法:
在BUILD文件中添加一个名为instrumentation_filter
的新参数:
# BUILD文件
load("@bazel_skylib//rules:repository.bzl", "skylib_add_all_rules")
skylib_add_all_rules()
cc_binary(
name = "my_binary",
srcs = [...],
)
# 添加instrumentation_filter参数
cc_test(
name = "my_test",
srcs = ["my_test.cc"],
deps = [":my_binary"],
instrumentation_filter = ["-//path/to/excluded:all"],
)
在上面的示例中,instrumentation_filter
参数设置为-//path/to/excluded:all
,这将排除名为path/to/excluded
的所有文件和目录。
另外,确保在运行Bazel时使用--collect_code_coverage
和--coverage_report_generator
标志来收集代码覆盖率并生成报告。
bazel coverage \
--instrumentation_filter=-//path/to/excluded:all \
--collect_code_coverage \
--coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main \
//path/to/package:target
请根据自己的项目结构和需要进行相应的调整。