Kover est un ensemble de solutions permettant de collecter la couverture des tests du code Kotlin compilé pour les plateformes JVM et Android.
Ensemble d'outils Kover :
Plugin Kover Gradle
Plugin Kover Maven
Kover CLI
Instrumentation hors ligne Kover
Agent JVM Kover
Kover présente un artefact
Pour des informations complètes sur la dernière version stable du plugin Kover Gradle, veuillez vous référer à la documentation.
Collecte de couverture de code via des tests JVM
(JS et les cibles natives ne sont pas encore prises en charge).
Génération de rapports HTML
et XML
.
Prise en charge des projets Kotlin JVM
et Kotlin Multiplatform
.
Prise en charge des projets Kotlin Android
avec des variantes de build (les tests d'instrumentation exécutés sur l'appareil Android ne sont pas encore pris en charge).
Prise en charge des sources mixtes Kotlin
et Java
Règles de vérification avec limites dans le plugin Gradle pour suivre la couverture.
Utilisation de la bibliothèque JaCoCo dans le plugin Gradle comme alternative pour la mesure de la couverture et la génération de rapports.
La manière recommandée d'appliquer Kover est d'utiliser les plugins DSL.
La version minimale prise en charge de Gradle
est 6.8
.
Ajoutez ce qui suit à votre fichier de build de niveau supérieur :
plugins { id("org.jetbrains.kotlinx.kover") version "0.9.0-RC"}
plugins { identifiant 'org.jetbrains.kotlinx.kover' version '0.9.0-RC'}
Après avoir appliqué le plugin Kover Gradle, les tâches Kover seront créées pour générer des rapports et des vérifications. Par exemple, pour générer un rapport HTML, exécutez ./gradlew koverHtmlReport
- cela démarrera automatiquement la compilation du code, l'exécution des tests instrumentés et un rapport HTML sera généré avec les résultats de mesure dans le dossier de construction.
Il est également important qu'après l'application du plugin Kover Gradle, pendant les tests en cours, les classes soient modifiées (instrumentées) lorsqu'elles sont chargées dans la JVM, ce qui peut entraîner une certaine dégradation des performances ou affecter les tests simultanés.
La méthode héritée d'application des plugins peut être utilisée si vous ne pouvez pas utiliser les plugins DSL pour une raison quelconque.
script de construction { dépôts { mavenCentral() } dépendances { chemin de classe ("org.jetbrains.kotlinx:kover-gradle-plugin:0.9.0-RC") } }apply(plugin = "org.jetbrains.kotlinx.kover")
script de construction { dépôts { mavenCentral() } dépendances { chemin de classe 'org.jetbrains.kotlinx:kover-gradle-plugin:0.9.0-RC'} } appliquer le plugin : 'org.jetbrains.kotlinx.kover'
Vous devez ajouter une dépendance sur le projet dans lequel la tâche de rapport sera exécutée
dépendances { kover(project(":un autre:projet")) }
dans ce cas, un rapport sera généré pour le projet en cours joint au projet :another:project
.
D'autres exemples d'application du plugin Gradle peuvent être trouvés dans le dossier d'exemple.
Kover Aggregated Plugin en tant que prototype du plugin Gradle Settings, créé pour simplifier la configuration de versions multi-projets. Il en est à ses balbutiements, il est recommandé de l’utiliser uniquement pour des projets de test ou d’animaux de compagnie.
Reportez-vous à la documentation pour plus de détails.
Le plugin Kover Maven peut être appliqué en spécifiant le plugin de build
<plugin> <groupId>org.jetbrains.kotlinx</groupId> <artifactId>kover-maven-plugin</artifactId> <version>0.9.0-RC</version> </plugin>
La liste des objectifs de Kover est précisée dans cette section du document.
Pour des informations complètes sur la dernière version stable du plugin Kover Maven, veuillez vous référer à la documentation.
Application JVM autonome utilisée pour l'instrumentation hors ligne et la génération de rapports lisibles par l'homme.
Documentation de la CLI Kover.
L'instrumentation hors ligne est la modification des fichiers de classe stockés sur disque pour mesurer leur couverture.
Les méthodes d'instrumentation hors ligne et d'exécution des applications instrumentées sont décrites dans la documentation.
L'agent JVM est un fichier jar qui modifie le bytecode chargé dans les classes JVM afin de mesurer la couverture. Documents.
Une dépendance JVM qui permet d'instrumenter par programme des fichiers de classe sur un disque.
Documentation de l'artefact des fonctionnalités de Kover
Voir les directives de contribution.