Плагин Android Gradle позволяет создавать отчеты о покрытии кода, отслеживающие процент кода, покрываемого тестами. На этой странице описано, как включить отчеты о покрытии кода и создавать их.
Вы можете создавать отчеты о покрытии кода для каждого типа тестов (модульных и инструментальных) для каждого варианта. Вы также можете создавать единые отчеты о покрытии кода для различных типов тестов, модулей и вариантов сборки.
Включить покрытие кода
Для включения покрытия кода необходимо установить значения параметров enableAndroidTestCoverage и enableUnitTestCoverage в значение true в файлах сборки на уровне модуля для каждого варианта, для которого вы хотите получать отчеты о покрытии:
Котлин
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, вы можете указать ее в файле сборки на уровне модуля:
Котлин
android { jacoco { version = "JACOCO_VERSION" } }
Классный
android { jacoco { version = 'JACOCO_VERSION' } }
Создавайте отчеты о покрытии для конкретных вариантов.
Чтобы сгенерировать отчеты о покрытии кода только для модульных тестов или только для инструментальных тестов для конкретного варианта, запустите соответствующие задачи.
| Тип теста | Командование | Местонахождение отчета |
|---|---|---|
| модульные тесты | ./gradlew : module-name :create VariantName UnitTestCoverageReport | path-to-your-project / module-name /build/reports/coverage/test/ variant /index.html |
| Инструментальные испытания | ./gradlew : module-name :create VariantName AndroidTestCoverageReport | path-to-your-project / module-name /build/reports/coverage/androidTest/ variant /connected/index.html |
Создавайте унифицированные отчеты о покрытии кода.
С помощью задач Gradle createCoverageReport и createAggregatedCoverageReport можно создавать унифицированные отчеты о покрытии кода. Эти задачи позволяют сгенерировать единый HTML-отчет, объединяющий данные о покрытии из различных типов тестов (модульных и инструментальных), модулей и вариантов сборки. Это обеспечивает всесторонний обзор покрытия кода вашего проекта на одной панели мониторинга.
Предварительные требования
- Android Gradle Plugin 9.2.0-alpha07 или выше
Для создания единого отчета выполните одну из следующих задач из командной строки:
| Область охвата | Командование | Описание | Местонахождение отчета |
|---|---|---|---|
| Текущий модуль | ./gradlew : module-name :createCoverageReport | Создает единый отчет о покрытии кода для текущего модуля, объединяя данные из всех типов тестов. | path-to-your-project / module-name /build/reports/code_coverage_html_report/ |
| Текущий модуль и зависимости | ./gradlew : module-name :createAggregatedCoverageReport | Создает единый отчет о покрытии кода для текущего модуля и всех его зависимостей. Эта задача доступна для модулей приложений и модулей библиотек с включенной функцией публикации . | path-to-your-project / module-name /build/reports/aggregated_code_coverage_html_report/ |
Сгенерированная HTML-страница отчета отображает краткий обзор всех модулей. Вы можете перейти от модуля к пакету, от пакета к классу и от класса к исходному файлу. Щелкните любой файл, чтобы просмотреть код с подсветкой строк и ветвлений:
- Зеленый: Закрытые линии.
- Красный: Непокрытые линии.
- Желтый цвет: Частичное покрытие (некоторые инструкции или ветви отсутствуют).