私はマルチモジュールのAndroidプロジェクトを持っており、ジャココレポートとSonarqubeが報告するカバレッジの間に相違があります。 プロジェクトは、さまざまなバリエーションを多数生成するマルチフレーバプロジェクトです。私はすべてのタスクを生成するためにthis pluginを使用しています。タスクは、各バリアントについて個別のレポートを生成します。Sonarqube全体のカバレッジがjacocoレポートカバレッジと一致しません
私はjacocoレポートを実行すると、私はこれを参照してください。
を、私は私のプロジェクトのいくつかの除外を持っていますが、でもなしにそれらのカバレッジ%sは一致しません。 ソナーバージョン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
}
あなたの答えに感謝します。あなたは明確にしていただけますか? ソナーが示している28%のカバレッジは? ソナーレポートで28.8%の「カバレッジ」が大きいことに注目してください。私はそれが何を表しているのか、それがジャココの報告書とどのように関係しているのかはよく分かりません。 支店の範囲は、私が心配しなければならないものであり、指示を逃さないものですか? –
「28.8%」 - ラインカバレッジとブランチカバレッジが混在しています。http://docs.sonarqube.org/display/SONAR/Metric+Definitions計算方法についてはJaCoCoでは計算しません。 "27.1%" - JaCoCoレポートで表示する必要があるが、スクリーンショットには表示されないラインカバレッジです(たとえば、http://www.eclemma.org/jacoco/trunk/coverageの5列の「missed/lines」を参照) 。 "心配している"?どういう意味ですか?最初の質問は、不一致に関するもので、コードカバレッジメトリックの使用方法は別の話です。 SonarQubeは、ブランチとラインの集約を提供し、同時に両方のモニタリングを簡素化します。 – Godin
それに応じて私の答えを更新 – Godin