مشاهده گزارش‌های پوشش کد

افزونه‌ی اندروید گریدل (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 تولید شده، خلاصه‌ای سطح بالا از تمام ماژول‌ها را نشان می‌دهد. می‌توانید از ماژول به پکیج، از پکیج به کلاس و از کلاس به فایل منبع، به جزئیات بیشتری دسترسی پیدا کنید. برای مشاهده کد به همراه هایلایت پوشش خط و شاخه، روی هر فایل کلیک کنید:

  • سبز: خطوط پوشیده شده.
  • قرمز: خطوط پوشیده نشده.
  • زرد: پوشش جزئی (برخی دستورالعمل‌ها یا شاخه‌ها از قلم افتاده‌اند).