Android Gradle eklentisi, testlerinizin kodunuzun yüzde kaçını kapsadığını izleyen kod kapsamı raporları oluşturabilir. Bu sayfada, kapsam raporlamayı nasıl etkinleştireceğiniz ve raporları nasıl oluşturacağınız 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 istiyorsanız 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ının kapsamlı bir görünümünü tek bir kontrol panelinde görebilirsiniz.
Ön koşullar
- Android Gradle eklentisi 9.5.0-alpha05 veya sonraki sürümler
- Kod kapsamını etkinleştirme
Birleştirilmiş bir 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 genel bir özeti gösterilir. Modülden pakete, paketten sınıfa ve sınıftan kaynak dosyaya kadar 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ı: Kapsanmayan satırlar.
- Sarı: Kısmi kapsam (bazı talimatlar veya dallar eksik).
Enstrümantasyon testleri için cihaz üzerinde kod kapsamını kullanma
AGP, varsayılan olarak uygulamanızı derlerken uygulamanızın sınıflarını JaCoCo ile donatarak enstrümantasyon testlerinin kapsamını ölçer. AGP 9.6.0-alpha01'den itibaren, testleriniz çalışırken uygulamanızın sınıflarını test cihazında donatan cihaz üzerinde enstrümantasyonu kullanabilirsiniz. Daha fazla bilgi için Kod kapsamı raporlarını görüntüleme (cihaz üzerinde aracı ile) başlıklı makaleyi inceleyin.