Kover — набор решений для сбора тестового покрытия кода Kotlin, скомпилированного для платформ JVM и Android.
Набор инструментов Ковер:
Плагин Kover Gradle
Плагин Kover Maven
Ковер CLI
Офлайн-приборы Kover
Ковер JVM-агент
Ковер имеет артефакт
Полную информацию о последней стабильной версии плагина Kover Gradle можно найти в документации.
Сбор покрытия кода с помощью JVM
тестов (JS и нативные цели пока не поддерживаются).
Создание отчетов HTML
и XML
.
Поддержка Kotlin JVM
, Kotlin Multiplatform
.
Поддержка проектов Kotlin Android
с вариантами сборки (инструментальные тесты, выполняемые на устройстве Android, пока не поддерживаются).
Поддержка смешанных источников Kotlin
и Java
Правила проверки с границами в плагине Gradle для отслеживания покрытия.
Использование библиотеки JaCoCo в плагине Gradle в качестве альтернативы для измерения покрытия и создания отчетов.
Рекомендуемый способ применения Kover — с помощью плагинов DSL.
Минимальная поддерживаемая версия Gradle
— 6.8
.
Добавьте следующее в файл сборки верхнего уровня:
плагины { id("org.jetbrains.kotlinx.kover") версия "0.9.0-RC"}
плагины { идентификатор 'org.jetbrains.kotlinx.kover' версии '0.9.0-RC'}
После того, как вы применили плагин Kover Gradle, будут созданы задачи Kover для создания отчетов и проверки. Например, чтобы сгенерировать HTML-отчет, запустите ./gradlew koverHtmlReport
— это автоматически запустит компиляцию кода, выполнение инструментальных тестов, и будет создан HTML-отчет с результатами измерений в папке сборки.
Также важно, чтобы после применения плагина Kover Gradle во время выполнения тестов классы модифицировались (инструментировались) при загрузке в JVM, что может привести к некоторому снижению производительности или повлиять на параллельные тесты.
Устаревший метод применения плагинов можно использовать, если по какой-то причине вы не можете использовать DSL плагинов.
сценарий сборки { репозитории { mavenCentral() } зависимости { classpath("org.jetbrains.kotlinx:kover-gradle-plugin:0.9.0-RC") } }apply(plugin = "org.jetbrains.kotlinx.kover")
сценарий сборки { репозитории { mavenCentral() } зависимости { путь к классам 'org.jetbrains.kotlinx:kover-gradle-plugin:0.9.0-RC'} } применить плагин: «org.jetbrains.kotlinx.kover»
Вам необходимо добавить зависимость от проекта, в котором будет выполняться задача отчета.
зависимости { ковер(проект(":другой:проект")) }
в этом случае отчет будет создан для текущего проекта, объединенного с проектом :another:project
.
Дополнительные примеры применения плагина Gradle можно найти в папке примеров.
Kover Aggregated Plugin как прототип плагина Gradle Settings, созданный для упрощения настройки многопроектных сборок. Он находится в зачаточном состоянии, поэтому рекомендуется использовать его только для тестовых или домашних проектов.
Подробности см. в документации.
Плагин Kover Maven можно применить, указав плагин сборки.
<плагин> <groupId>org.jetbrains.kotlinx</groupId> <artifactId>ковер-maven-плагин</artifactId> <версия>0.9.0-RC</версия> </плагин>
Перечень целей Ковер указан в данном разделе документа.
Полную информацию о последней стабильной версии плагина Kover Maven можно найти в документации.
Автономное приложение JVM, используемое для автономного инструментирования и создания удобочитаемых отчетов.
Документация Kover CLI.
Автономное инструментирование — это модификация файлов классов, хранящихся на диске, для измерения их покрытия.
Способы автономного инструментирования и запуска инструментированных приложений описаны в документации.
Агент JVM — это jar-файл, который изменяет байт-код, загружаемый в классы JVM, для измерения покрытия. Документация.
Зависимость JVM, которая позволяет программно инструментировать файлы классов на диске.
Документация по артефакту функций Kover
См. Рекомендации по участию.