0

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

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

(1) 顶层代码树: 顶级代码树

(2) 沿着“实施”树向下走: 在此处输入图像描述

(3) 沿着 'Implementation/ComponentTemplate' 树向下: 在此处输入图像描述

(4) 沿着“实施/组件模板/代码”树向下: 在此处输入图像描述

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

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

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

任何帮助或信息都将得到应用。谢谢

4

1 回答 1

1

您的第二个猜测是正确的:覆盖结果的不完整导入是导致数字倾斜的原因。覆盖率报告中未包含的行不包含在覆盖率计算中。由于当前的覆盖率报告仅包含一个覆盖率 93% 的文件,因此所有数字均以此为基础。

于 2016-09-19T13:27:40.647 回答