代码覆盖率在 Jmeter 板上显示为0%
构建.gradle文件
plugins {
id "org.sonarqube" version "2.8"
id "java"
id "idea"
id "jacoco"
}
jacoco {
toolVersion = "0.8.5"
}
jacocoTestReport {
reports {
html.enabled true
xml.enabled true
xml.destination file("${buildDir}/reports/jacoco.xml")
}
}
plugins.withType(JacocoPlugin) {
tasks["test"].finalizedBy 'jacocoTestReport'
}
sonarqube {
properties {
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.host.url", "http://169.254.1.100:9000"
property "sonar.coverage.jacoco.xmlReportPath", "${buildDir}/reports/jacoco.xml"
}
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
// https://mvnrepository.com/artifact/junit/junit
testCompile 'junit:junit:4.12'
}
check.dependsOn jacocoTestReport
运行此命令
./gradlew build jacocoTestReport sonarqube
生成的JacoboTestReport具有正确的代码覆盖率
Sonarqube gradle任务生成此日志
> Task :sonarqube
SonarScanner will require Java 11 to run starting in SonarQube 8.x
Property 'sonar.jacoco.reportPath' is no longer supported. Use JaCoCo's xml report and sonar-jacoco plugin.
Property 'sonar.jacoco.reportPaths' is no longer supported. Use JaCoCo's xml report and sonar-jacoco plugin.
谷歌搜索了半天,这个问题的唯一真实的解决方案如下:Property 'sonar.jacoco.reportPath' is deprecated. Please use 'sonar.jacoco.reportPaths' instead
此答案here解释了以下项的双输出:
Property 'sonar.jacoco.reportPaths' is no longer supported. Use JaCoCo's xml report and sonar-jacoco plugin.
然而,这似乎还没有添加到gradle插件中,因为正在使用的插件是2.8,这是截至发布的最新版本。
我是不是漏掉了什么?
3条答案
按热度按时间qlckcl4x1#
必须将XML报表属性启用为true。
xml.已启用真
iecba09b2#
为了进一步说明qasanov的答案,我必须将以下内容添加到
build.gradle
文件中,以便JaCoCo生成XML报告,然后SonarQube自动获取该报告:ipakzgxi3#
配置中的问题是属性名称的类型。它是sonar.coverage.jacoco. xmlReportPath,而不是sonar.coverage.jacoco.xmlReportPath
我没有使用gradle声纳插件,而是使用Jenkin Job的-〉Execute SonarQube Scanner配置。
默认情况下,Jacoco只生成html文件,对于SonarQube,我们需要xmlReportPath。
Gradle中的以下代码将启用xml报告,并生成默认名称为jacocoTestReport.xml的文件
这将在Jenkins工作区中的位置/ws/build/reports/jacoco/test/jacocoTestReport. xml沿着/ws/build/reports/jacoco/html文件夹中生成以下文件,该文件夹包含覆盖率报告的所有html文件。可以通过访问位于/ws/build/reports/jacoco/html/index. xml的index.html文件来访问此报告
以及要在以下属性中提供的Jacoco xml报告文件的路径
这对我很有效。
在此之前,在SonarQube中,我无法看到覆盖率,在其他项目中,覆盖率显示为0.0%。
因此,总而言之,SonarQube无法查看您的JaCoCo报告文件。