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.3.0-alpha09 या इसके बाद का वर्शन
- कोड कवरेज की सुविधा चालू करना
एक साथ रिपोर्ट जनरेट करने के लिए, कमांड लाइन से इनमें से कोई एक टास्क चलाएं:
| कवरेज का दायरा | निर्देश | ब्यौरा | रिपोर्ट की जगह |
|---|---|---|---|
| मौजूदा मॉड्यूल | ./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/ |
जनरेट की गई एचटीएमएल रिपोर्ट के लैंडिंग पेज पर, सभी मॉड्यूल की खास जानकारी दिखती है. मॉड्यूल से पैकेज, पैकेज से क्लास, और क्लास से सोर्स फ़ाइल तक ड्रिल-डाउन किया जा सकता है. लाइन और ब्रांच कवरेज के लिए, हाइलाइटिंग के साथ कोड देखने के लिए, किसी भी फ़ाइल पर क्लिक करें:
- हरा: कवर की गई लाइनें.
- लाल: कवर नहीं की गई लाइनें.
- पीला: आंशिक कवरेज (कुछ निर्देश या ब्रांच छूट गए).