افزایه 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 |
تولید گزارشهای پوشش کد یکپارچه
میتوانید بااستفاده از تکالیف Gradle testAllSuites و testAllSuitesWithDependencies، گزارشهای پوشش کد یکپارچه تولید کنید. این تکالیف یک گزارش 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 تولیدشده خلاصهای سطح بالا از همه مدولها را نشان میدهد. میتوانید از واحد به بسته، از بسته به کلاس، و از کلاس به فایل منبع بروید. روی هر فایلی کلیک کنید تا کد را با برجستهسازی برای پوشش خط و شاخه ببینید:
- سبز: خطوط پوششدادهشده.
- قرمز: خطوط پوششدادهنشده.
- زرد: پوشش جزئی (برخی دستورالعملها یا شاخهها ازدست رفتهاند).
استفاده از پوشش کد دروندستگاهی برای آزمایشهای ابزاردار
بهطور پیشفرض، AGP پوشش آزمایشهای ابزارشده را با ابزارسازی کلاسهای برنامهتان با JaCoCo هنگام ساختن برنامهتان اندازهگیری میکند. از AGP 9.6.0-alpha01، میتوانید بهجای آن از ابزارسازی دروندستگاهی استفاده کنید که کلاسهای برنامهتان را در دستگاه آزمایشی هنگام اجرای آزمایشهایتان ابزارسازی میکند. برای اطلاعات بیشتر، به مشاهده گزارشهای پوشش کد (با عامل دروندستگاهی) مراجعه کنید.