Wyświetlanie raportów dotyczących pokrycia kodu

Wtyczka Androida do obsługi Gradle może tworzyć raporty o pokryciu kodu, które śledzą odsetek kodu objętego testami. Na tej stronie dowiesz się, jak włączyć raportowanie pokrycia i generować raporty.

Możesz generować raporty o pokryciu dla każdego typu testu (jednostkowego i instrumentacyjnego) w przypadku każdej wersji. Możesz też generować ujednolicone raporty o pokryciu w przypadku różnych typów testów, modułów i wariantów kompilacji.

Włączanie pokrycia kodu

Aby włączyć pokrycie kodu, ustaw w plikach kompilacji na poziomie modułu dla każdego wariantu, dla którego chcesz uzyskać raporty o pokryciu, wartości enableAndroidTestCoverageenableUnitTestCoverage na true:

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

Zmiana wersji Jacoco (opcjonalnie)

Gdy włączysz pokrycie w modułach, AGP automatycznie zastosuje Jacoco. Jeśli jednak musisz użyć konkretnej wersji Jacoco, możesz ją określić w pliku kompilacji na poziomie modułu:

Kotlin

android {
    jacoco {
        version = "JACOCO_VERSION"
    }
}

Groovy

android {
    jacoco {
        version = 'JACOCO_VERSION'
    }
}

Generowanie raportów o zasięgu dla poszczególnych wersji

Aby wygenerować raporty o pokryciu tylko dla testów jednostkowych lub tylko dla testów z instrumentacją w przypadku konkretnego wariantu, uruchom odpowiednie zadania.

Typ testu Polecenie Lokalizacja raportu
Testy jednostkowe ./gradlew :module-name:createVariantNameUnitTestCoverageReport path-to-your-project/module-name/build/reports/coverage/test/variant/index.html
Testy z instrumentacją ./gradlew :module-name:createVariantNameAndroidTestCoverageReport path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html

Generowanie ujednoliconych raportów o pokryciu kodu

Ujednolicone raporty o pokryciu kodu możesz generować za pomocą zadań Gradle createCoverageReportcreateAggregatedCoverageReport. Za pomocą tych zadań możesz wygenerować jeden raport HTML, który zawiera dane o pokryciu z różnych typów testów (jednostkowych i instrumentacyjnych), modułów i wariantów kompilacji. Zapewnia to kompleksowy wgląd w pokrycie kodu projektu w jednym panelu.

Wymagania wstępne

  • Wtyczka Androida do obsługi Gradle w wersji 9.2.0-alpha07 lub nowszej

Aby wygenerować ujednolicony raport, wykonaj jedno z tych zadań w wierszu poleceń:

Zakres ochrony Polecenie Opis Lokalizacja raportu
Bieżący moduł ./gradlew :module-name:createCoverageReport Generuje ujednolicony raport o pokryciu bieżącego modułu, łącząc dane ze wszystkich typów testów. path-to-your-project/module-name/build/reports/code_coverage_html_report/
Bieżący moduł i zależności ./gradlew :module-name:createAggregatedCoverageReport Generuje ujednolicony raport o pokryciu dla bieżącego modułu i wszystkich jego zależności. To zadanie jest dostępne w przypadku modułów aplikacji i modułów biblioteki z włączoną publikacją. path-to-your-project/module-name/build/reports/aggregated_code_coverage_html_report/

Wygenerowana strona docelowa raportu HTML zawiera ogólne podsumowanie wszystkich modułów. Możesz przechodzić od modułu do pakietu, od pakietu do klasy i od klasy do pliku źródłowego. Kliknij dowolny plik, aby wyświetlić kod z wyróżnieniem wierszy i gałęzi:

  • Zielony: linie objęte ochroną.
  • Czerwony: nieobjęte wiersze.
  • Żółty: częściowe pokrycie (brak niektórych instrukcji lub gałęzi).