【发布时间】:2018-07-24 15:17:33
【问题描述】:
我正在尝试使用 Jacoco 为 Kotlin 进行声纳设置以生成代码覆盖率报告,但它没有显示任何代码覆盖率。在检查声纳控制台时,它显示以下错误。任何人以前都遇到过这个问题,任何可能遗漏的建议。
元信息
使用 sonarqube 版本“2.6.1”的插件
gradleVersion = '3.0.1'
kotlinVersion = '1.2.21'
Sonarqube 版本 = 版本 6.7.1(内部版本 35068)- LGPL v3
令人沮丧的是,我的设置项目生成空白代码覆盖率报告:(。PFA。
编辑:请找到项目结构快照。
我正在添加我用来生成声纳矩阵报告的声纳和 Jacoco gradle 文件设置。
这里是 sonar.gradle 文件:
sonarqube {
properties {
property "sonar.projectKey", "jacoco.sonar.test"
property "sonar.projectName", "Sonar Jacoco Test"
property "sonar.projectVersion", "1.1"
property "sonar.java.source", "7"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
property "sonar.java.binaries", "build/tmp/kotlin-classes"
property "sonar.java.test.binaries", "build/intermediates/classes/test/,build/tmp/kotlin-classes/devDebugUnitTest"
property "sonar.tests","src/test/java"
property "sonar.sources","src/main/java"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.jacoco.reportPaths","build/jacoco/testDevDebugUnitTest.exec"
property "sonar.junit.reportsPath","build/test-results/testDevDebugUnitTest"
}
}
这里是 jacoco.gradle 文件
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.7.9"
reportsDir = file("${project.projectDir}/app/build/reports")
}
task jacocoTestReport(type: JacocoReport, dependsOn: "app:testDevDebugUnitTest") {
group = "Reporting"
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = ['**/R.class',
'**/R$*.class',
'**/BuildConfig.*',
'**/*$ViewInjector*.*',
'**/*$ViewBinder*.*',
'**/*$MembersInjector*.*',
'**/Manifest*.*',
'**/*Test*.*',
'android/**/*.*']
classDirectories = fileTree(
dir: "${project.projectDir}/app/build/intermediates/classes/dev",
excludes: fileFilter
) + fileTree(
dir: "${project.projectDir}/app/build/tmp/kotlin-classes/devDebug",
excludes: fileFilter
)
// sources
sourceDirectories = files(["${project.projectDir}/app/src/main/java"])
executionData = files("${project.projectDir}/app/build/jacoco/testDevDebugUnitTest.exec")
}
按照我用来生成 Jacobo 报告然后飙升报告的 gradle 命令。
./gradlew clean jacocoTestReport sonarqube
我观察到我得到的,一定是有一些路径。
未收集覆盖信息。也许你忘记包括 调试信息到编译的类?
对不起,如果这看起来有点长;但这是我发现的最好的总结在一个地方。另请注意,我尝试使用 Java 类而不是 Kotlin 进行类似设置,它正在生成具有代码覆盖率的报告。
【问题讨论】:
-
您能否edit您的问题包括您的SonarQube版本?
-
请检查您的 SonarQube 页面的页脚并添加您在那里找到的版本。我怀疑您标记为 SonarQube 版本的实际上是您的扫描仪版本。
-
您使用的是什么版本的 SonarJava?您在 Jacoco 报告上生成哪个版本? SonarJava 5.1 添加了对 jacoco 8.0 的支持 - 我不确定您正在生成什么版本,但这可能是相关的?
-
我正在使用:SQube:7.0,SRunner:3.0.3.778。 Jacoco 版本我没有明确提及,应该使用最新版本(即 jacoco-0.8.0)。
-
kotlin 源文件在哪里?
标签: android sonarqube code-coverage jacoco sonarqube-ops