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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Groovy
android { testCoverage { jacocoVersion = '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 |
यूनिफ़ाइड कोड कवरेज रिपोर्ट जनरेट करना
testAllSuites और testAllSuitesWithDependencies Gradle टास्क का इस्तेमाल करके, कोड कवरेज की यूनीफ़ाइड रिपोर्ट जनरेट की जा सकती हैं. इन टास्क से एक एचटीएमएल रिपोर्ट जनरेट होगी. इसमें अलग-अलग तरह के टेस्ट (यूनिट और इंस्ट्रूमेंटेशन), मॉड्यूल, और बिल्ड वैरिएंट से कवरेज डेटा शामिल होगा. इससे आपको एक ही डैशबोर्ड में, अपने प्रोजेक्ट के कोड कवरेज के बारे में पूरी जानकारी मिलती है.
android.experimental.reportAggregationSupport=true पर सेट करें.
ज़रूरी शर्तें
- Android Gradle प्लगिन 9.5.0-alpha05 या इसके बाद का वर्शन
- कोड कवरेज की सुविधा चालू करना
एक ही रिपोर्ट जनरेट करने के लिए, कमांड लाइन से इनमें से कोई एक टास्क चलाएं:
| कवरेज का दायरा | निर्देश | ब्यौरा | जगह की जानकारी की रिपोर्ट करना |
|---|---|---|---|
| मौजूदा मॉड्यूल | ./gradlew :module-name:testAllSuites |
यह सभी टेस्ट सुइट की जांच करता है. साथ ही, मौजूदा मॉड्यूल के लिए एक ही कवरेज रिपोर्ट जनरेट करता है. इसमें सभी तरह के टेस्ट का डेटा मर्ज किया जाता है. | path-to-your-project/module-name/build/reports/code_coverage_html_report/ |
| मौजूदा मॉड्यूल और डिपेंडेंसी | ./gradlew :module-name:testAllSuitesWithDependencies |
यह सभी टेस्ट सुइट की जांच करता है. साथ ही, मौजूदा मॉड्यूल और उसकी सभी डिपेंडेंसी के लिए, एक ही कवरेज रिपोर्ट जनरेट करता है. यह टास्क, ऐप्लिकेशन मॉड्यूल और पब्लिकेशन की सुविधा चालू किए गए लाइब्रेरी मॉड्यूल के लिए उपलब्ध है. | path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/ |
जनरेट की गई एचटीएमएल रिपोर्ट का लैंडिंग पेज, सभी मॉड्यूल की खास जानकारी दिखाता है. मॉड्यूल से पैकेज, पैकेज से क्लास, और क्लास से सोर्स फ़ाइल तक ड्रिल-डाउन किया जा सकता है. लाइन और ब्रांच कवरेज के लिए, हाइलाइट किए गए कोड को देखने के लिए किसी भी फ़ाइल पर क्लिक करें:
- हरा: कवर की गई लाइनें.
- लाल: ऐसी लाइनें जिन्हें कवर नहीं किया गया है.
- पीला: कुछ हद तक कवरेज (कुछ निर्देश या ब्रांच छूट गई हैं).