मेरे पास एक बहु-मॉड्यूल एंड्रॉइड प्रोजेक्ट है और मुझे कवरेज के बीच एक विसंगति दिखाई दे रही है जो जैकोको रिपोर्ट करता है और सोनारक्वे की रिपोर्ट क्या है। परियोजना भी एक बहु स्वाद परियोजना है जो कई अलग-अलग प्रकार उत्पन्न करती है। मैं सभी कार्यों को उत्पन्न करने में मदद के लिए this plugin का उपयोग कर रहा हूं। कार्य प्रत्येक संस्करण के लिए एक व्यक्तिगत रिपोर्ट उत्पन्न करते हैं।सोनारक्वे समग्र कवरेज जैकोको रिपोर्ट कवरेज से मेल नहीं खाता
जब मैं अपने jacoco रिपोर्टें चला मैं इस देखें:
जब मैं सोनार स्कैनर मैं यह देखने चलाएँ:
मैं अपने प्रोजेक्ट पर कुछ बहिष्करण, लेकिन फिर भी बिना उन्हें कवरेज% s मेल नहीं खाते हैं। सोनार संस्करण 5.6:
मैं के रूप में this question:
यहाँ मेरी प्रासंगिक जानकारी है में संकेत दिया है कि मैं एक ही बाईटकोड प्रदान नहीं किया जा सकता है।
Gradle धावक
plugins { id "org.sonarqube" version "2.0.1" }
सोनार config: (पर रूट 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"
}
}
सोनार config (एप्लिकेशन/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 config पर (ऐप/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+ परिभाषित करें कि इसकी गणना कैसे की जाती है, JaCoCo इसकी गणना नहीं करता है। "27.1%" - लाइन कवरेज है, जिसे JaCoCo रिपोर्ट में प्रस्तुत किया जाना चाहिए, लेकिन आपके स्क्रीनशॉट पर नहीं दिखाया गया है (उदाहरण के लिए http://www.eclemma.org/jacoco/trunk/coverage पर 5 कॉलम "मिस्ड/लाइन" देखें) । "चिंतित"? आपका मतलब क्या है?प्रारंभिक प्रश्न विसंगति के बारे में है और कोड कवरेज मीट्रिक का उपयोग कैसे करें एक अलग कहानी है। सोनारक्यूब एक ही समय में दोनों की निगरानी को सरल बनाने के लिए शाखा और रेखाओं का एकत्रीकरण प्रदान करता है। – Godin
ने मीट्रिक परिभाषाओं को इंगित करने के लिए – Godin