Kod kapsamı raporlarını görüntüleme

Android Gradle eklentisi, testlerinizin kodunuzun yüzde kaçını kapsadığını izleyen kod kapsamı raporları oluşturabilir. Bu sayfada, kapsam raporlamasının nasıl etkinleştirileceği ve raporların nasıl oluşturulacağı açıklanmaktadır.

Her varyant için her test türüne (birim ve araç) yönelik kapsam raporları oluşturabilirsiniz. Farklı test türleri, modüller ve derleme değişkenleri için birleştirilmiş kapsam raporları da oluşturabilirsiniz.

Kod kapsamını etkinleştirme

Kod kapsamı, kapsam raporları almak istediğiniz her varyant için modül düzeyindeki derleme dosyalarında enableAndroidTestCoverage ve enableUnitTestCoverage değerleri true olarak ayarlanarak etkinleştirilmelidir:

Kotlin

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

Modern

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

Jacoco sürümünü değiştirme (isteğe bağlı)

AGP, modüllerinizde kapsamı etkinleştirdiğinizde Jacoco'yu otomatik olarak uygular. Ancak Jacoco'nun belirli bir sürümünü kullanmanız gerekiyorsa bunu modül düzeyindeki derleme dosyanızda belirtebilirsiniz:

Kotlin

android {
    testCoverage {
        jacocoVersion = "JACOCO_VERSION"
    }
}

Modern

android {
    testCoverage {
        jacocoVersion = 'JACOCO_VERSION'
    }
}

Varyanta özel kapsam raporları oluşturma

Belirli bir varyant için yalnızca birim testleri veya yalnızca enstrümantasyon testleri için kapsam raporları oluşturmak üzere ilgili görevleri çalıştırın.

Test türü Komut Rapor konumu
Birim testleri ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
Araçlı testler ./gradlew :module-name:createVariantNameAndroidTestCoverageReport path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html

Birleştirilmiş kod kapsamı raporları oluşturma

testAllSuites ve testAllSuitesWithDependencies Gradle görevlerini kullanarak birleştirilmiş kod kapsamı raporları oluşturabilirsiniz. Bu görevler, farklı test türlerinden (birim ve enstrümantasyon), modüllerden ve derleme değişkenlerinden gelen kapsam verilerini birleştiren tek bir HTML raporu oluşturur. Bu sayede, projenizin kod kapsamına dair kapsamlı bir görünümü tek bir kontrol panelinde elde edebilirsiniz.

Ön koşullar

Birleşik rapor oluşturmak için komut satırından aşağıdaki görevlerden birini çalıştırın:

Kapsam Komut Açıklama Rapor konumu
Geçerli modül ./gradlew :module-name:testAllSuites --continue Tüm test paketlerini test eder ve tüm test türlerinden verileri birleştirerek mevcut modül için birleşik bir kapsam raporu oluşturur. path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/
Mevcut modül ve bağımlılıklar ./gradlew :module-name:testAllSuitesWithDependencies --continue Tüm test paketlerini test eder ve mevcut modül ile tüm bağımlılıkları için birleştirilmiş bir kapsam raporu oluşturur. Bu görev, uygulama modülleri ve yayınlama özelliği etkinleştirilmiş kitaplık modülleri için kullanılabilir. path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/

Oluşturulan HTML raporu açılış sayfasında tüm modüllerin üst düzey bir özeti gösterilir. Modülden pakete, paketten sınıfa ve sınıftan kaynak dosyaya ayrıntılı inceleme yapabilirsiniz. Satır ve dal kapsamı için vurgulanan kodu görmek üzere herhangi bir dosyayı tıklayın:

  • Yeşil: Kapsanan satırlar.
  • Kırmızı: Kapsam dışı satırlar.
  • Sarı: Kısmi kapsam (bazı talimatlar veya dallar eksik).