Melihat laporan cakupan kode

Plugin Android Gradle dapat membuat laporan cakupan kode yang melacak persentase kode yang dicakup oleh pengujian Anda. Halaman ini menjelaskan cara mengaktifkan pelaporan cakupan dan membuat laporan.

Anda dapat membuat laporan cakupan untuk setiap jenis pengujian (unit dan instrumentasi) untuk setiap varian. Anda juga dapat membuat laporan cakupan terpadu di berbagai jenis pengujian, modul, dan varian build.

Mengaktifkan cakupan kode

Cakupan kode harus diaktifkan dengan menyetel enableAndroidTestCoverage dan enableUnitTestCoverage ke true dalam file build level modul untuk setiap varian yang ingin Anda dapatkan laporan cakupannya:

Kotlin

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage = true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage = true
        }
    }
}

Groovy

android {
    // ...
    buildTypes {
        debug {
            // Enable coverage for unit tests
            enableUnitTestCoverage true
            // Enable coverage for instrumentation tests
            enableAndroidTestCoverage true
        }
    }
}

Ubah versi Jacoco (opsional)

AGP akan otomatis menerapkan Jacoco saat Anda mengaktifkan cakupan pada modul. Namun, jika Anda perlu menggunakan Jacoco versi tertentu, Anda dapat menentukannya di file build level modul:

Kotlin

android {
    jacoco {
        version = "JACOCO_VERSION"
    }
}

Groovy

android {
    jacoco {
        version = 'JACOCO_VERSION'
    }
}

Membuat laporan cakupan spesifik per varian

Untuk membuat laporan cakupan hanya untuk pengujian unit atau hanya pengujian berinstrumen untuk varian tertentu, jalankan tugas yang sesuai.

Jenis pengujian Perintah Laporkan lokasi
Pengujian unit ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
Pengujian berinstrumen ./gradlew :module-name:createVariantNameAndroidTestCoverageReport path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html

Membuat laporan cakupan kode terpadu

Anda dapat membuat laporan cakupan kode terpadu menggunakan tugas Gradle createCoverageReport dan createAggregatedCoverageReport. Anda dapat menggunakan tugas ini untuk membuat satu laporan HTML yang menggabungkan data cakupan dari berbagai jenis pengujian (unit dan instrumentasi), modul, dan varian build. Dasbor ini memberikan tampilan komprehensif tentang cakupan kode project Anda dalam satu dasbor.

Prasyarat

  • Plugin Android Gradle 9.2.0-alpha07 atau yang lebih tinggi

Untuk membuat laporan gabungan, jalankan salah satu tugas berikut dari command line:

Cakupan Perintah Deskripsi Laporkan lokasi
Modul saat ini ./gradlew :module-name:createCoverageReport Membuat laporan cakupan terpadu untuk modul saat ini, menggabungkan data dari semua jenis pengujian. path-to-your-project/module-name/build/reports/code_coverage_html_report/
Modul dan dependensi saat ini ./gradlew :module-name:createAggregatedCoverageReport Membuat laporan cakupan terpadu untuk modul saat ini dan semua dependensinya. Tugas ini tersedia untuk modul aplikasi dan modul library dengan publikasi yang diaktifkan. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

Halaman landing laporan HTML yang dihasilkan menampilkan ringkasan umum semua modul. Anda dapat melihat perincian dari modul ke paket, dari paket ke class, dan dari class ke file sumber. Klik file apa pun untuk melihat kode dengan penyorotan untuk cakupan baris dan cabang:

  • Hijau: Baris yang tercakup.
  • Merah: Baris yang tidak tercakup.
  • Kuning: Cakupan sebagian (beberapa petunjuk atau cabang terlewat).