团队, 我在一个目录中有两个源文件,一个源文件被完全跳过,没有包含在
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