У меня есть проект с несколькими модулями Android, и я вижу несоответствие между охватом, который сообщает jacoco, и тем, что сообщает Sonarqube. Проект также представляет собой проект с несколькими вкусами, который генерирует много разных вариантов. Я использую этот плагин, чтобы помочь мне сгенерировать все задачи. Задачи генерируют индивидуальный отчет для каждого варианта.
Когда я запускаю отчеты о jacoco, я вижу следующее:
Когда я запускаю сканер сонара, я вижу это:
У меня есть некоторые исключения в моем проекте, но даже без них покрытие% s не соответствует.
Мне кажется, что я не могу предоставить тот же байт-код, что и в этот вопрос:
Вот моя соответствующая информация: Версия сонара 5.6.
Gradle бегун
plugins { id "org.sonarqube" version "2.0.1" }
Конфигурация сонара: (на root 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"
}
}
Конфигурация сонара (в приложении /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
}