【发布时间】:2016-11-11 08:32:28
【问题描述】:
我在 Sonar 中的代码覆盖率显示为 0%,这是不正确的,因为我有单元测试。
Gradle
sonarqube {
properties {
property "sonar.binaries", "build/intermediates/classes/release"
property "sonar.java.binaries", "build/intermediates/classes/release"
property "sonar.java.test.binaries", "build/intermediates/classes/test/release"
property "sonar.sources", "src"
property "sonar.junit.reportsPath", "build/reports/tests/release"
property "sonar.java.junit.reportsPath", "build/reports/tests/release"
property "sonar.android.lint.report", "build/outputs/lint-results.xml"
property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/testReleaseUnitTest.exec"
}
}
当我打开build/reports/tests/release 中的index.html 时,我可以看到成功的单元测试。
我在我的 Jenkins 环境中以 gradle task 的形式运行 sonarqube。我的 SonarQube 实例显示 Code Smells 和除 code coverage 之外的所有内容,它显示 0%。
更新
我确实得到了一个为代码覆盖率创建的index.html,但这也都显示为 0%:
app/build/reports/jacoco/jacocoTestDebugUnitTestReport/html/index.html
更新
仍然是 0%,但这是我目前所拥有的:
android {
...
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
testCoverageEnabled true
}
debug {
testCoverageEnabled true
}
}
jacoco {
version "0.7.8.201607051106"
}
}
【问题讨论】:
标签: jenkins gradle sonarqube jacoco sonarqube-scan