bazel 覆盖跳过 coverage.dat 报告中没有测试的源文件

问题描述 投票:0回答:0

团队, 我在一个目录中有两个源文件,一个源文件被完全跳过,没有包含在

bazel-out/_coverage/_coverage_report.dat
中,到目前为止我还没有任何线索。我在网上查了一下。

当我将相同的覆盖率上传到 sonarqube 时,它显示的覆盖率百分比较低,而在执行 genhtml 后本地 bazel 显示的百分比较高,因为它忽略了根本没有覆盖率的源文件,只使用了覆盖率文件的百分比。那么是否有一个我需要指定给 bazel 的标志,说明即使文件没有测试,也将其包含在覆盖率报告中,这样覆盖率% 是所有文件的平均值,而不仅仅是带有测试的文件?因为它在文件夹级别给出误报,当一个文件夹有两个文件,一个有覆盖范围,一个没有覆盖范围时,bazel 显示 100% 的文件夹而不是同一文件夹中两个文件的平均会计行。

我的命令如下。我错过了任何旗帜吗?

./bazel coverage --config=gocov //src/servicescode/... --combined_report=lcov

coverage:gocov --combined_report=lcov --coverage_report_generator="//src/code/gocoverage-lcov:gocoverage-lcov"
INFO: LCOV coverage report is located at /private/var/tmp/_bazel_....bazel-out/_coverage/_coverage_report.dat
 and execpath is bazel-out/_coverage/_coverage_report.dat

当我在下面执行时,它会生成 html 并且显示更高的百分比,因为它不包含没有覆盖范围的文件。

./bazel run @lcov//:bin/genhtml -- -o $HOME/waste/ --ignore-errors source --function-coverage --branch-coverage --no-sort bazel-out/_coverage/_coverage_report.dat
code-coverage bazel lcov
© www.soinside.com 2019 - 2024. All rights reserved.