[英]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% 的错误。
当我比较成功和失败构建的日志时,我在失败的构建中发现了这条消息。
信息:传感器 JaCoCoSensor [java]
信息:“sonar.jacoco.reportPaths”和“sonar.coverage.jacoco.xmlReportPaths”均已设置。 'sonar.jacoco.reportPaths' 已弃用,因此只会考虑 'sonar.coverage.jacoco.xmlReportPaths'。
但是我没有配置任何特定于xmlReportPaths
的东西,所以不确定它为什么开始失败。
gradle version- 5.4.1
SonarQube Scanner version- 3.3.0.1492
SonarQube server version- 7.3.0
任何帮助表示赞赏。
经过几天的努力和互联网搜索,我终于找到了我在gradle任务中犯的错误。 我启用了html
和xml
这两个报告,这是引起提及问题的原因。
将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也在处理一个故事的同一消息。
正如文档 sonarqube 中所述,它不运行测试,它只是导入由其他工具生成的报告,以便在其他分析中显示它们。
所以我的猜测是你没有配置你的 CI 链来生成要在 sonarqube 中显示的测试报告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.