【发布时间】:2017-03-06 17:29:49
【问题描述】:
我有一个多模块 Android 项目,我发现 jacoco 报告的报道与 Sonarqube 报告的报道之间存在差异。 该项目也是一个多风味的项目,会产生许多不同的变体。我正在使用this plugin 来帮助我生成所有任务。这些任务为每个变体生成单独的报告。
当我运行我的 jacoco 报告时,我看到了这个:
我的项目中有一些排除项,但即使没有它们,覆盖率 %s 也不匹配。
我觉得我提供的字节码可能与this question: 中提示的字节码不同
这是我的相关信息: 声纳 5.6 版。
Gradle 赛跑者
plugins { id "org.sonarqube" version "2.0.1" }
声纳配置:(在根 build.gradle 上)
sonarqube {
properties {
property "sonar.projectKey", "com.xxx.myApp"
property "sonar.projectName", "Android My App"
property "sonar.projectVersion", "3.0"
property "sonar.java.binaries", "build/classes"
property "sonar.coveragePlugin", "jacoco"
property "sonar.jacoco.reportMissing.force.zero", "false"
}
}
声纳配置(在 app/build.gradle 上)
sonarqube {
properties {
property "sonar.sources", "src/main/java"
property "sonar.tests", "src/test/java"
property "sonar.java.tests", "src/test/java"
property "sonar.junit.reportsPath", "build/test-results/myAppGoogleMobileDebug"
property "sonar.java.binaries", "build/intermediates/classes/myAppGoogleMobile/debug"
property "sonar.jacoco.reportPath", "build/jacoco/testMyAppGoogleMobileDebugUnitTest.exec"
property "sonar.coverage.exclusions", coverageExclusions
}
}
Jacoco 配置 (app/build.gradle)
def coverageExclusions = ['**/AEWatchApp.*', '**/**_Factory.*',
'**/QaSettingsActivity.*',
'com/aetn/android/tveapps/activities/**',
'com/aetn/android/tveapps/test/**',
'com/aetn/android/tveapps/app/injection/modules/**',
'com/aetn/android/tveapps/app/injection/components/**',
'com.aetn.android.tveapps.mock/**',
'com/aetn/android/tveapps/databinding/**']
jacocoAndroidUnitTestReport {
csv.enabled false
html.enabled true
xml.enabled true
excludes += coverageExclusions
}
【问题讨论】:
标签: android sonarqube code-coverage jacoco