افزایه Android Gradle میتواند گزارشهای پوشش کد ایجاد کند که درصد کدی را که آزمایشهای شما پوشش میدهد ردیابی میکند. این صفحه نحوه فعال کردن گزارش پوشش و تولید گزارش را شرح میدهد.
میتوانید گزارشهای پوشش را برای هر نوع آزمایش (واحد و ابزار دقیق) برای هر گونه تولید کنید. همچنین میتوانید گزارشهای پوشش یکپارچه را در انواع مختلف آزمایش، ماژولها، و تنوعهای ساخت تولید کنید.
فعال کردن پوشش کد
پوشش کد باید با تنظیم 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 { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
شیک
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 میتوانید گزارشهای یکپارچه پوشش کد تولید کنید. این تکالیف یک گزارش HTML واحد تولید میکنند که دادههای پوشش را از انواع مختلف آزمایش (واحد و ابزار)، ماژولها، و تنوعهای ساخت ادغام میکند. این ویژگی نمای جامعی از پوشش کد پروژهتان را در یک داشبورد ارائه میدهد.
پیشنیازها
- افزایه Android Gradle نسخه 9.5.0-alpha05 یا بالاتر
- فعال کردن پوشش کد
برای تولید گزارش یکپارچه، یکی از تکالیف زیر را از خط فرمان اجرا کنید:
| حوزه پوشش | فرمان | شرح | گزارش مکان |
|---|---|---|---|
| واحد کنونی | ./gradlew :module-name:testAllSuites --continue |
همه مجموعههای آزمون را آزمایش میکند و گزارش پوشش یکپارچهای برای واحد کنونی تولید میکند و دادههای همه انواع آزمون را ادغام میکند. | path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/ |
| واحد کنونی و وابستگیها | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
همه مجموعههای آزمایشی را آزمایش میکند و گزارش پوشش یکپارچهای برای واحد کنونی و همه وابستگیهای آن تولید میکند. این تکلیف برای ماژولهای برنامه و ماژولهای کتابخانه با انتشار فعال دردسترس است. | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/ |
صفحه مقصد گزارش HTML تولیدشده خلاصهای سطح بالا از همه پیمانهها را نشان میدهد. میتوانید از واحد به بسته، از بسته به کلاس، و از کلاس به فایل منبع بروید. روی هر فایلی کلیک کنید تا کد را با برجستهسازی برای پوشش خط و شاخه ببینید:
- سبز: خطوط پوششدادهشده.
- قرمز: خطوط پوششدادهنشده.
- زرد: پوشش جزئی (برخیاز دستورالعملها یا شاخهها ازدست رفته است).