我正在查看SonarQube分析的C++项目中“度量”选项卡下的覆盖率报告。在该页面上,我的摘要信息如下:
“待覆盖行”和“未覆盖行”指标有何区别?
我查看了SonarQube网站的指标定义页面,但那里的两个条目都没有帮助我。
待覆盖行 - 代码中可以由单元测试覆盖的行数(例如,空行或完整注释行不视为待覆盖行)。
未覆盖行 - 单元测试未覆盖的代码行数。
从文本中可以看出,我期望未覆盖行数比待覆盖行数更高,因为前者可能包括空行。如果SonarQube在某种程度上理解代码,它也可能将异常处理排除在“可以由单元测试覆盖”的数字之外。
给定的数字显然与此相反,所以我必须没有正确理解含义。
我有一些单元测试在CI系统中运行,它们的代码覆盖率使用lcov和gcov进行编译。这些lcov数据会通过genhtml进行处理,生成单独的覆盖率报告,在某些情况下当前会出现数据问题,因此可能存在部分错误配置问题,增加了混淆的可能性。