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

Android Gradle eklentisi, testlerinizin kodunuzun ne kadarı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ü (birim ve enstrümantasyon) için kapsam raporları oluşturabilirsiniz. Ayrıca farklı test türleri, modüller ve derleme varyantları arasında birleştirilmiş kapsam raporları da oluşturabilirsiniz.

Kod kapsamını etkinleştirme

Kapsam raporlarını almak istediğiniz her varyant için modül düzeyindeki derleme dosyalarında enableAndroidTestCoverage ve enableUnitTestCoverage değerlerini true olarak ayarlayarak kod kapsamı etkinleştirilmelidir:

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
        }
    }
}

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 {
    jacoco {
        version = "JACOCO_VERSION"
    }
}

Groovy

android {
    jacoco {
        version = 'JACOCO_VERSION'
    }
}

Varyanta özel kapsam raporları oluşturma

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

Test türü Komut Konumu bildirme
Birim testleri ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
Enstrümantasyon testleri ./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

createCoverageReport ve createAggregatedCoverageReport Gradle görevlerini kullanarak birleştirilmiş kod kapsamı raporları oluşturabilirsiniz. Bu görevleri, farklı test türlerinden (birim ve enstrümantasyon), modüllerden ve derleme varyantlarından elde edilen kapsam verilerini birleştiren tek bir HTML raporu oluşturmak için kullanabilirsiniz. Bu sayede, projenizin kod kapsamına dair kapsamlı bir görünümü tek bir kontrol panelinde elde edebilirsiniz.

Ön koşullar

  • Android Gradle Eklentisi 9.2.0-alpha07 veya sonraki sürümler

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

Kapsam Komut Açıklama Konumu bildirme
Geçerli modül ./gradlew :module-name:createCoverageReport Tüm test türlerinden gelen verileri birleştirerek mevcut modül için birleşik bir kapsam raporu oluşturur. path-to-your-project/module-name/build/reports/code_coverage_html_report/
Mevcut modül ve bağımlılıklar ./gradlew :module-name:createAggregatedCoverageReport Mevcut modül ve tüm bağımlıları için birleştirilmiş bir kapsam raporu oluşturur. Bu görev, uygulama modülleri ve yayınlamanın etkinleştirildiği kitaplık modülleri için kullanılabilir. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

Oluşturulan HTML raporu açılış sayfasında tüm modüllerin üst düzey ö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 vurgulama içeren kodu görmek üzere herhangi bir dosyayı tıklayın:

  • Yeşil: Kapsam dahilindeki satırlar.
  • Kırmızı: Kapsanmayan satırlar.
  • Sarı: Kısmi kapsama (bazı talimatlar veya dallar atlanmış).