कोड कवरेज की रिपोर्ट देखना

Android Gradle प्लगिन, कोड कवरेज रिपोर्ट बना सकता है. ये रिपोर्ट, आपके कोड के उस हिस्से को ट्रैक करती हैं जिसे आपके टेस्ट कवर करते हैं. इस पेज पर, कवरेज रिपोर्टिंग की सुविधा चालू करने और रिपोर्ट जनरेट करने का तरीका बताया गया है.

हर वैरिएंट के लिए, हर तरह के टेस्ट (यूनिट और इंस्ट्रुमेंटेशन) के लिए कवरेज रिपोर्ट जनरेट की जा सकती हैं. अलग-अलग तरह के टेस्ट, मॉड्यूल, और बिल्ड वैरिएंट के लिए, एक जैसी कवरेज रिपोर्ट भी जनरेट की जा सकती हैं.

कोड कवरेज की सुविधा चालू करना

कोड कवरेज की सुविधा चालू होनी चाहिए. इसके लिए, आपको हर उस वैरिएंट के लिए मॉड्यूल-लेवल की बिल्ड फ़ाइलों में enableAndroidTestCoverage और enableUnitTestCoverage को true पर सेट करना होगा जिसके लिए आपको कवरेज रिपोर्ट चाहिए:

Kotlin

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage = true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage = true
        }
    }
}

Groovy

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage true
        }
    }
}

Jacoco का वर्शन बदलें (ज़रूरी नहीं)

AGP, मॉड्यूल पर कवरेज की सुविधा चालू करने पर, Jacoco को अपने-आप लागू करता है. हालांकि, अगर आपको Jacoco के किसी खास वर्शन का इस्तेमाल करना है, तो उसे अपने मॉड्यूल-लेवल की बिल्ड फ़ाइल में तय किया जा सकता है:

Kotlin

android {
    jacoco {
        version = "JACOCO_VERSION"
    }
}

Groovy

android {
    jacoco {
        version = 'JACOCO_VERSION'
    }
}

वेरिएंट के हिसाब से कवरेज रिपोर्ट जनरेट करना

किसी खास वैरिएंट के लिए, सिर्फ़ यूनिट टेस्ट या सिर्फ़ इंस्ट्रुमेंटेड टेस्ट के लिए कवरेज रिपोर्ट जनरेट करने के लिए, उससे जुड़े टास्क चलाएं.

टेस्ट टाइप निर्देश जगह की जानकारी की रिपोर्ट करना
यूनिट टेस्ट ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
इंस्ट्रुमेंट किए गए टेस्ट ./gradlew :module-name:createVariantNameAndroidTestCoverageReport path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html

यूनिफ़ाइड कोड कवरेज रिपोर्ट जनरेट करना

createCoverageReport और createAggregatedCoverageReport Gradle टास्क का इस्तेमाल करके, कोड कवरेज की यूनीफ़ाइड रिपोर्ट जनरेट की जा सकती हैं. इन टास्क का इस्तेमाल करके, एक ऐसी एचटीएमएल रिपोर्ट जनरेट की जा सकती है जिसमें अलग-अलग तरह के टेस्ट (यूनिट और इंस्ट्रुमेंटेशन), मॉड्यूल, और बिल्ड वैरिएंट से कवरेज डेटा को इकट्ठा किया गया हो. इससे आपको एक ही डैशबोर्ड में, अपने प्रोजेक्ट के कोड कवरेज की पूरी जानकारी मिलती है.

ज़रूरी शर्तें

  • Android Gradle प्लगिन 9.2.0-alpha07 या इसके बाद का वर्शन

एक ही रिपोर्ट जनरेट करने के लिए, कमांड लाइन से इनमें से कोई एक टास्क चलाएं:

कवरेज का दायरा निर्देश ब्यौरा जगह की जानकारी की रिपोर्ट करना
मौजूदा मॉड्यूल ./gradlew :module-name:createCoverageReport यह मौजूदा मॉड्यूल के लिए, एक यूनिफ़ाइड कवरेज रिपोर्ट जनरेट करता है. इसमें सभी तरह के टेस्ट का डेटा मर्ज किया जाता है. path-to-your-project/module-name/build/reports/code_coverage_html_report/
मौजूदा मॉड्यूल और डिपेंडेंसी ./gradlew :module-name:createAggregatedCoverageReport यह मौजूदा मॉड्यूल और उसकी सभी डिपेंडेंसी के लिए, एक यूनिफ़ाइड कवरेज रिपोर्ट जनरेट करता है. यह टास्क, ऐप्लिकेशन मॉड्यूल और पब्लिकेशन की सुविधा वाले लाइब्रेरी मॉड्यूल के लिए उपलब्ध है. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

जनरेट की गई एचटीएमएल रिपोर्ट का लैंडिंग पेज, सभी मॉड्यूल की खास जानकारी दिखाता है. मॉड्यूल से पैकेज, पैकेज से क्लास, और क्लास से सोर्स फ़ाइल तक ड्रिल-डाउन किया जा सकता है. लाइन और ब्रांच कवरेज के लिए, हाइलाइट किए गए कोड को देखने के लिए किसी भी फ़ाइल पर क्लिक करें:

  • हरा: कवर की गई लाइनें.
  • लाल: ऐसी लाइनें जिन्हें कवर नहीं किया गया है.
  • पीला: कुछ हद तक कवरेज (कुछ निर्देश या ब्रांच छूट गईं).