带有 jacoco 插件的 SonarQube 覆盖百分比显示为零,但可以看到单元测试的数量

Posted

技术标签:

【中文标题】带有 jacoco 插件的 SonarQube 覆盖百分比显示为零,但可以看到单元测试的数量【英文标题】:SonarQube coverage percentage with jacoco plugin shows zero percentage but hte number of unit tests are seen 【发布时间】:2020-04-29 20:22:27 【问题描述】:

我已经在 SonarQube 中配置了一个项目,并且使用 JaCoCo 插件运行分析以可视化单元测试覆盖率。

测试在 Jenkins 中成功运行,报告可以在 Jenkins 工作区中看到。

但是,声纳仪表板显示覆盖率为 0%,但在声纳仪表板上仍然可以看到单元测试的数量。 我尝试在命令行中使用以下属性。这些属性也在 SonarQube 配置中配置。

-Dsonar.junit.reportsPath=target/surefire-reports  -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml 

【问题讨论】:

Sonar 日志中是否有进一步的提示? 同样的问题! @Christopher :声纳日志中也没有更多错误 【参考方案1】:

您是否配置了 jacoco prepare-agent?我遇到了同样的问题,发现我错过了这个配置。

有用的链接可能是https://docs.sonarqube.org/display/SONARQUBE45/JaCoCo+Plugin。

或者通过 pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.0</version>
            <configuration>
                <append>true</append>
            </configuration>
            <executions>
                <execution>
                    <id>prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

关于您的报告路径:

您使用哪个版本的 SonarQube?

sonar.junit.reportsPath

自 4.11 版起已弃用,并且

sonar.junit.reportPaths

应该改为使用。

你如何创建你的 xml 报告文件?

【讨论】:

是的...这是在我们的 pom 文件中配置的。 我们使用的是 soanre 6.7.1。是的,我们的配置中使用了 sonar.junit.reportPaths

以上是关于带有 jacoco 插件的 SonarQube 覆盖百分比显示为零,但可以看到单元测试的数量的主要内容,如果未能解决你的问题,请参考以下文章

gradle、sonarqube 和 jacoco 插件的哪些版本兼容

Sonar是否使用Jacoco插件进行代码覆盖

SonarQube + JaCoCo + TeamCity 模块名称错误

Sonarqube:为多模块导入 Jacoco xml 报告

Jacoco 不生成 xml 文件

Android - Jacoco 无法正确生成 xml 报告(已解决)