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

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

پیش‌نیازها

برای تولید گزارش یکپارچه، یکی از تکالیف زیر را از خط فرمان اجرا کنید:

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