了解SonarQube C代码覆盖率度量

时间:2016-09-16 07:04:38

标签: sonarqube code-coverage gcov sonarqube-scan measures

我安装了SonarQube 5.6,使用C / C ++插件3.12来分析我们的项目。我已经生成了覆盖率结果(gcov),但到目前为止只有一个应用程序C文件。覆盖率为98.3%。 在分析整个项目时,应用程序覆盖结果会被导入'我可以在网络界面上追踪它们。

在顶级代码页面上,包含该文件的文件夹显示98.3%,在我看来不正确,因为对于所有其他C文件,还没有覆盖范围可用。我试图在以下系列快照中展示:

(1)顶级代码树: Top-level Code Tree

(2)继续实施'树: enter image description here

(3)继续实施/组件模板'树: enter image description here

(4)关注' Implementation / ComponentTemplate / code'树: enter image description here

EXMPL.c只有(4):113行代码。与“实施规范”的总代码行数相比较(4):61k,这只是约0.2%的某个地方。 (1)中EXMPL.c的覆盖率为98.3%是错误的!

我的项目由几个应用程序组成,EXMPL是项目中所有应用程序中的一个 - 最小的一个。因此,我必须为每个应用程序生成单独的覆盖结果,并导入'他们分别进入声纳。因此,覆盖率结果文件位于不同的文件夹中。

可能是项目结构或“未完成导入”。覆盖率结果是“错误”的原因。覆盖措施,但到目前为止,我还没有找到任何关于声纳如何处理提供gcov覆盖措施的有用信息。

任何帮助或信息都将受到关注。 感谢

1 个答案:

答案 0 :(得分:1)

你的第二个猜测是正确的:覆盖率结果的不完整导入是数字的偏差。未包含在覆盖率报告中的行不包括在覆盖率计算中。由于当前的覆盖率报告仅包含一个覆盖率为93%的文件,因此所有数字都基于此。