افزونهی اندروید گریدل (Android Gradle) میتواند گزارشهای پوشش کد (code coverage) ایجاد کند که درصد پوشش تستهای شما از کد را ردیابی میکند. این صفحه نحوهی فعالسازی گزارش پوشش و تولید گزارشها را شرح میدهد.
شما میتوانید گزارشهای پوشش را برای هر نوع تست (واحد و ابزار دقیق) و برای هر متغیر ایجاد کنید. همچنین میتوانید گزارشهای پوشش یکپارچهای را در بین انواع مختلف تست، ماژولها و متغیرهای ساخت ایجاد کنید.
پوشش کد را فعال کنید
پوشش کد باید با تنظیم enableAndroidTestCoverage و enableUnitTestCoverage روی true در فایلهای ساخت سطح ماژول برای هر گونه که میخواهید گزارشهای پوشش را برای آن دریافت کنید، فعال شود:
کاتلین
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage = true // Enable coverage for instrumentation tests enableAndroidTestCoverage = true } } }
گرووی
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage true // Enable coverage for instrumentation tests enableAndroidTestCoverage true } } }
تغییر نسخه Jacoco (اختیاری)
AGP به طور خودکار Jacoco را هنگام فعال کردن پوشش در ماژولهای شما اعمال میکند. با این حال، اگر نیاز به استفاده از نسخه خاصی از Jacoco دارید، میتوانید آن را در فایل ساخت سطح ماژول خود مشخص کنید:
کاتلین
android { jacoco { version = "JACOCO_VERSION" } }
گرووی
android { jacoco { version = 'JACOCO_VERSION' } }
گزارشهای پوشش خاص انواع مختلف را ایجاد کنید
برای تولید گزارشهای پوشش فقط برای تستهای واحد یا فقط تستهای ابزار دقیق برای یک متغیر خاص، وظایف مربوطه را اجرا کنید.
| نوع آزمون | فرمان | گزارش موقعیت مکانی |
|---|---|---|
| تستهای واحد | ./gradlew : module-name :create VariantName UnitTestCoverageReport | path-to-your-project / module-name /build/reports/coverage/test/ variant /index.html |
| آزمایشهای ابزاری | ./gradlew : module-name :create VariantName AndroidTestCoverageReport | path-to-your-project / module-name /build/reports/coverage/androidTest/ variant /connected/index.html |
گزارشهای پوشش کد یکپارچه ایجاد کنید
شما میتوانید با استفاده از وظایف createCoverageReport و createAggregatedCoverageReport در Gradle، گزارشهای پوشش کد یکپارچهای ایجاد کنید. میتوانید از این وظایف برای تولید یک گزارش HTML واحد استفاده کنید که دادههای پوشش را از انواع مختلف تست (واحد و ابزار دقیق)، ماژولها و انواع ساخت تجمیع میکند. این امر، نمای جامعی از پوشش کد پروژه شما را در یک داشبورد واحد ارائه میدهد.
پیشنیازها
- افزونه اندروید گریدل نسخه ۹.۲.۰-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/ |
صفحه فرود گزارش HTML تولید شده، خلاصهای سطح بالا از تمام ماژولها را نشان میدهد. میتوانید از ماژول به پکیج، از پکیج به کلاس و از کلاس به فایل منبع، به جزئیات بیشتری دسترسی پیدا کنید. برای مشاهده کد به همراه هایلایت پوشش خط و شاخه، روی هر فایل کلیک کنید:
- سبز: خطوط پوشیده شده.
- قرمز: خطوط پوشیده نشده.
- زرد: پوشش جزئی (برخی دستورالعملها یا شاخهها از قلم افتادهاند).