如何关闭声纳分析仪但仍然获得覆盖率报告?

Posted

技术标签:

【中文标题】如何关闭声纳分析仪但仍然获得覆盖率报告?【英文标题】:How can one turn off sonar analyser but still get coverage report? 【发布时间】:2019-06-28 01:44:27 【问题描述】:

已清除here,从 Sonarqube 6.2 版开始,覆盖率报告被合并,不再有单独的单元和集成覆盖率报告。

我们仍然有兴趣分别获得这两个覆盖率报告。所以,我们有三个声纳项目:单元测试、集成测试、整体项目(负责创建整体覆盖率报告)

问题:在所有三个项目中都分析了所有源文件。由于文件数量太多,因此需要几分钟才能执行分析。

问题:是否可以在项目中以某种方式关闭声纳问题分析器?希望只报告前两个项目(单元测试和集成测试)中的测试覆盖率而不分析所有文件,然后只在最后一个项目(整个项目)上运行问题分析器。它可以帮助我们分析所有文件一次而不是三次。

附加信息:我们使用 sonar gradle 插件版本 2.6.2 和 sonarqube 版本 7.4

【问题讨论】:

【参考方案1】:

SonarQube/SonarCloud 的主要职责是通知用户有关问题。显示代码覆盖率只是一个附加功能。这意味着没有允许您这样做的标志/参数。

幸运的是,有一个解决方法。您可以创建空的质量配置文件,并使用它们来扫描这两个项目(单元测试和集成测试)。您将得到 0 个问题,因为启用了零规则。

您应该对以下功能请求感兴趣:Making test coverage measures mode useful。随意投票。

【讨论】:

非常感谢您的回答。首先,我投票支持功能请求。此外,我尝试使用空的质量配置文件运行分析,但问题为零。但我主要担心的是分析时间在我的案例中大约需要 3 分钟。不幸的是,我们没有规则或有几个规则都没有关系,分析时间仍然相同。 即使启用了零规则,分析器也会创建classes tree 并加载库。我不知道是否可以禁用它。可能没有。

以上是关于如何关闭声纳分析仪但仍然获得覆盖率报告?的主要内容,如果未能解决你的问题,请参考以下文章

为单元和集成测试生成声纳覆盖率报告

执行分析后如何将测试结果和代码覆盖率结果发送到 SonarQube 项目

声纳覆盖率:lcov 覆盖率报告中的文件路径不正确

通过 ci-pipeline 发布声纳报告后对 sonarQube 的覆盖率为零

mutiModule maven 项目的综合声纳报告

Sonarqube + Jacoco - 声纳不会从属性中读取报告路径