我使用静态库和可执行文件进行了小规模的设置来进行单元测试。 运行“ bazel coverage”时,它将在单元测试二进制文件的测试日志文件夹中创建coverage.dat文件。结果是lcov文件或llvm profdata文件。 bazel的coverage数据生成器似乎能够区分clang和gcc,但似乎无法生成报告。
有没有办法从覆盖范围生成器获取一些统计信息?
答案 0 :(得分:1)
bazel 版本:3.7.0
bazelisk coverage -s \
--combined_report=lcov \
--experimental_cc_coverage \
--instrumentation_filter="//Src[/:]" \
--local_test_jobs=1 \
--nocache_test_results
//tests:all
然后运行cmd:
genhtml bazel-out/_coverage/_coverage_report.dat \
--highlight \
--legend \
--output-directory coverage
结果如下:
......
Overall coverage rate:
lines......: 68.7% (3076 of 4480 lines)
functions..: 61.5% (638 of 1037 functions)
答案 1 :(得分:0)
我这样做bazel coverage
:
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 \
//...
然后我以这种方式生成HTML输出。
genhtml /home/user1/.cache/bazel/_bazel_user1/e74a825d0eb0c2db4b6f8afd819b274c/execroot/__main__/bazel-out/k8-fastbuild/testlogs/foo_test/coverage.dat --output-directory coverage