Плагин Android Gradle может создавать отчеты о покрытии кода, в которых отслеживается процент кода, покрываемый тестами. На этой странице описано, как включить отчеты о покрытии и создавать их.
Вы можете создавать отчеты о покрытии для каждого типа тестирования (модульного и инструментального) для каждого варианта. Вы также можете создавать единые отчеты о покрытии для разных типов тестов, модулей и вариантов сборки.
Включить покрытие кода
Чтобы включить покрытие кода, задайте для параметров enableAndroidTestCoverage и enableUnitTestCoverage значение true в файлах сборки на уровне модуля для каждого варианта, для которого вы хотите получать отчеты о покрытии:
Kotlin
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage = true // Enable coverage for instrumentation tests enableAndroidTestCoverage = true } } }
Яркий
android { // ... buildTypes { debug { // Enable coverage for unit tests enableUnitTestCoverage true // Enable coverage for instrumentation tests enableAndroidTestCoverage true } } }
Измените версию Jacoco (необязательно)
AGP автоматически применяет Jacoco, когда вы включаете покрытие в модулях. Однако, если вам нужна определенная версия Jacoco, вы можете указать ее в файле сборки на уровне модуля:
Kotlin
android { testCoverage { jacocoVersion = "JACOCO_VERSION" } }
Яркий
android { testCoverage { jacocoVersion = 'JACOCO_VERSION' } }
Как создавать отчеты о покрытии для определенных вариантов
Чтобы создать отчеты о покрытии только для модульного тестирования или только для инструментальных тестов определенного варианта, запустите соответствующие задачи.
| Тип теста | Команда | Местоположение ошибки |
|---|---|---|
| Модульные тесты | ./gradlew :module-name:createVariantNameUnitTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/test/variant/index.html |
| Инструментальные тесты | ./gradlew :module-name:createVariantNameAndroidTestCoverageReport |
path-to-your-project/module-name/build/reports/coverage/androidTest/variant/connected/index.html |
Создание объединенных отчетов о покрытии кода
Вы можете создавать объединенные отчеты о покрытии кода с помощью задач Gradle testAllSuites и testAllSuitesWithDependencies. В результате этих задач будет создан один HTML-отчет, в котором будут объединены данные о покрытии из разных типов тестов (модульных и инструментальных), модулей и вариантов сборки. Это позволяет получить полное представление о покрытии кода проекта на одной панели управления.
Требования
- Плагин Android Gradle 9.5.0-alpha05 или более поздней версии.
- Как включить покрытие кода
Чтобы создать единый отчет, выполните в командной строке одну из следующих задач:
| Область покрытия | Команда | Описание | Местоположение ошибки |
|---|---|---|---|
| Текущий модуль | ./gradlew :module-name:testAllSuites --continue |
Тестирует все наборы тестов и создает единый отчет о покрытии для текущего модуля, объединяя данные всех типов тестов. | path-to-your-project/module-name/build/reports/testAllSuites/coverage-report/ |
| Текущий модуль и зависимости | ./gradlew :module-name:testAllSuitesWithDependencies --continue |
Тестирует все наборы тестов и создает единый отчет о покрытии для текущего модуля и всех его зависимостей. Эта задача доступна для модулей приложений и модулей библиотек с включенной публикацией. | path-to-your-project/module-name/build/reports/testAllSuitesWithDependencies/coverage-report/ |
На целевой странице сгенерированного отчета в формате HTML приводится сводка по всем модулям. Вы можете перейти от модуля к пакету, от пакета к классу, а от класса – к исходному файлу. Нажмите на любой файл, чтобы посмотреть код с выделением строк и ветвей:
- Зеленый – линии, которые покрыты.
- Красный – строки, не охваченные тестами.
- Желтый – частичное покрытие (некоторые инструкции или ветви пропущены).