SonarQube 分析显示代码覆盖率 0

SonarQube Analysis showing code coverage 0

这是一个基于 gradle build 工具的 SpringBoot 项目,我正在使用 AzureDevOps 任务进行 SonarQube 分析。

这是我在任务中添加的属性:

sonar.java.binaries=build\classes
sonar.jacoco.reportPaths=build\jacoco\test.exec
sonar.language=java
sonar.tests=src\test\java
sonar.verbose=false
sonar.test.inclusions=**\test\**

几天前它工作得很好,今天突然开始失败,错误代码覆盖率为 0%。

当我比较成功和失败构建的日志时,我在失败的构建中发现了这条消息。

INFO: Sensor JaCoCoSensor [java]

INFO: Both 'sonar.jacoco.reportPaths' and 'sonar.coverage.jacoco.xmlReportPaths' were set. 'sonar.jacoco.reportPaths' is deprecated therefore, only 'sonar.coverage.jacoco.xmlReportPaths' will be taken into account.

但我还没有配置任何特定于 xmlReportPaths 的东西,所以不确定为什么它开始失败。

gradle version- 5.4.1
SonarQube Scanner version- 3.3.0.1492
SonarQube server version- 7.3.0

感谢任何帮助。

经过几天的努力和互联网搜索,我终于找到了我在 gradle 任务中犯的错误。 我启用了 htmlxml 两个导致提及问题的报告。

xml.enabled 设置为 false,它开始像以前一样工作。

jacocoTestReport{
    additionalSourceDirs.from = files(sourceSets.main.allJava.srcDirs)
    reports {
        html.enabled true
        xml.enabled false
        csv.enabled false
        html.destination file("build/reports/jacoco/html")
    }
    executionData.from = files('build/jacoco/test.exec')    
}

但我仍然不确定它第一次是如何工作的,因为正如我之前所说,我没有对代码或管道进行任何更改。

我看到 Sonarqube 也在处理相同的消息 story