【发布时间】:2023-03-17 02:51:01
【问题描述】:
我有一个 gradle 项目,在 src/main/java 中有一些代码,在 src/test/java 中有一些单元测试
下面是 build.gradle
中的 sn-papply plugin: "jacoco"
sourceSets {
main {
java { srcDir 'src/main/java' }
}
}
test {
jacoco {
append = false
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
classDumpDir = file("$buildDir/jacoco/classpathdumps")
}
}
jacoco {
toolVersion = "0.7.8"
}
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination "${buildDir}/reports/jacoco/jacocoHtml"
}
}
在 TeamCity 上,我有 2 个步骤,第一步是使用命令 gradle clean jacocoTestReport build 的 Gradle 步骤,第二步是具有以下参数的 SonarQube runner:
-Dsonar.sources=%system.teamcity.build.checkoutDir%/src
-Dsonar.java.binaries=%system.teamcity.build.checkoutDir%/build/classes
-Dsonar.branch.name=%teamcity.build.branch%
-Dsonar.jacoco.reportPaths=%system.teamcity.build.checkoutDir%/build/jacoco/jacocoTest.exec
但是,在 SonarQube 仪表板上,我的项目仍然显示有 0% 的覆盖率。如果我将 jacoco 覆盖报告正确地提供给 SonarQube(版本 6.7),请告知我
【问题讨论】:
-
您查看过 SonarQube 日志文件吗?
-
@JeroenHeier 我看不到日志,因为我无法控制那个 SonarQube 服务器(它由另一个团队管理)
-
分析日志告诉你什么?为什么不使用 SonarQube 扫描仪进行 gradle 呢?如果我是正确的,SonarRunner 已被弃用,您无论如何都应该使用声纳扫描仪。
-
@benzonico Sonar Runner 是 TeamCity 中的专用构建步骤。
-
另外,SonarQube 服务器的管理员会阻止任何本地分析结果直接推送到服务器
标签: gradle sonarqube teamcity code-coverage jacoco