【发布时间】:2020-07-28 19:05:37
【问题描述】:
在我们将 SonarQube 升级到 Version 7.9.2 (build 30863), Community Edition 后,运行 GitLab CI 管道会显示 0.0% 覆盖率(从大约 86.2% 下降),尽管 Sonar 显示所有单元测试。
在 .gitlab-ci.yml 中执行的 Maven 构建看起来像这样:
- mvn test sonar:sonar -Dsonar.host.url=${SONAR_HOST_URL} -Dsonar.login=${SONAR_TOKEN}
显然这需要处理臭名昭著的 sonar.coverage.jacoco.xmlReportPaths 和 sonar.jacoco.reportPaths Sonar-JaCoCo 插件设置(请参阅 https://docs.sonarqube.org/pages/viewpage.action?pageId=1442166)。
查看管道作业日志后,我发现以下内容(项目名称混淆为myProject):
SonarQube 升级前:
[INFO] Sensor JaCoCo XML Report Importer [jacoco]
[INFO] Sensor JaCoCo XML Report Importer [jacoco] (done) | time=3ms
[INFO] Sensor SurefireSensor [java]
[INFO] parsing [/builds/myProject/target/surefire-reports]
[INFO] Sensor SurefireSensor [java] (done) | time=87ms
[INFO] Sensor JaCoCoSensor [java]
[WARNING] Property 'sonar.jacoco.reportPaths' is deprecated (JaCoCo binary format). 'sonar.coverage.jacoco.xmlReportPaths' should be used instead (JaCoCo XML format). Please check that the JaCoCo plugin is installed on your SonarQube Instance.
[INFO] Analysing /builds/myProject/target/jacoco.exec
[INFO] Sensor JaCoCoSensor [java] (done) | time=206ms
SonarQube 升级后:
[INFO] Sensor JaCoCo XML Report Importer [jacoco]
[INFO] Sensor JaCoCo XML Report Importer [jacoco] (done) | time=3ms
[INFO] Sensor SurefireSensor [java]
[INFO] parsing [/builds/myProject/target/surefire-reports]
[INFO] Sensor SurefireSensor [java] (done) | time=86ms
[INFO] Sensor JavaXmlSensor [java]
[INFO] 1 source files to be analyzed
[INFO] Sensor JavaXmlSensor [java] (done) | time=302ms
因此,sonar.jacoco.reportPaths 设置显然存在一些差异。
值得注意的是,我没有明确设置这两个设置中的任何一个。
如何修复 JaCoCo 报告的解析以使其正常工作(无论旧设置还是新设置)?
【问题讨论】:
标签: java maven sonarqube code-coverage jacoco