我正在使用genhtml命令从Bazel生成的coverage.dat文件中生成html覆盖报告:
genhtml bazel-testlogs/path/to/TestTarget/coverage.dat --output-directory coverage使用genhtml的问题是,我必须提供coverage.dat文件(在bazel-testlogs/中生成)的路径。是否可以从另一个规则中获取这些coverage.dat文件作为输出?
我不希望直接调用genthml命令,而是让Bazel处理所有事情。
发布于 2017-10-02 22:03:24
我找不到一种方法来获得coverage.dat文件作为bazel规则的输出。但是,我能够将所有.dat文件的所有位置作为src封装到工作区目录中的一个文件组中:
filegroup(
name = "coverage_files",
srcs = glob(["bazel-out/**/coverage.dat"]),
)然后在封装genthml命令以生成html覆盖报告的定制.bzl规则中使用该文件组。所以现在我只需要打电话给
bazel coverage //path/... --instrumentation_filter=/path[/:]命令来生成coverage.dat文件,生成html报告并将其压缩。因此,bazel处理一切。
发布于 2018-12-23 07:40:20
Bazel增加了对C++ coverage的支持(尽管我找不到太多的相关文档)。
我能够使用以下命令生成一个组合的coverage.dat文件
bazel coverage -s \
--instrument_test_targets \
--experimental_cc_coverage \
--combined_report=lcov \
--coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main \
//...coverage文件将添加到bazel-out/_coverage/_coverage_report.dat中
发布于 2022-01-14 14:34:57
对于基于Java的项目,我们可以通过以下方式获得代码覆盖率:
将覆盖完整的模块->
bazel coverage ... --compilation_mode=dbg --subcommands --announce_rc --verbose_failures --jobs=auto --sandbox_debug --build_runfile_links --combined_report=lcov --coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main然后,
output-directory-name中生成超文本标记语言报告。从打开的index.html查看覆盖率报告。genhtml -o <output-directory-name> bazel-out/_coverage/_coverage_report.datbazel-out目录通常在项目父目录中创建(例如,bazel WORKSPACE文件所在的位置)
可在模块->中获得特定IT/测试的覆盖范围
针对模块中特定IT/测试的
的项目/子项目目录中运行以下命令
bazel coverage <class-name-of-Test-or-IT> --compilation_mode=dbg --subcommands --announce_rc --verbose_failures --jobs=auto --sandbox_debug --build_runfile_links --combined_report=lcov --coverage_report_generator=@bazel_tools//tools/test/CoverageOutputGenerator/java/com/google/devtools/coverageoutputgenerator:Main然后,
output-directory-name中生成超文本标记语言报告。从打开的index.html查看覆盖率报告。genhtml -o <output-directory-name> bazel-out/_coverage/_coverage_report.dathttps://stackoverflow.com/questions/46447218
复制相似问题