Kover ist eine Reihe von Lösungen zum Sammeln der Testabdeckung von Kotlin-Code, der für JVM- und Android-Plattformen kompiliert wurde.
Kover-Toolset:
Kover Gradle Plugin
Kover Maven Plugin
Kover-CLI
Kover Offline-Instrumentierung
Kover JVM-Agent
Kover verfügt über Artefakte
Ausführliche Informationen zur neuesten stabilen Version des Kover Gradle Plugins finden Sie in der Dokumentation.
Erfassung der Codeabdeckung durch JVM
Tests (JS und native Ziele werden noch nicht unterstützt).
Generieren von HTML
und XML
Berichten.
Unterstützung für Kotlin JVM
und Kotlin Multiplatform
Projekte.
Unterstützung für Kotlin Android
Projekte mit Build-Varianten (Instrumentierungstests, die auf dem Android-Gerät ausgeführt werden, werden noch nicht unterstützt).
Unterstützt gemischte Kotlin
und Java
Quellen
Überprüfungsregeln mit Grenzen im Gradle-Plugin, um die Abdeckung zu verfolgen.
Verwendung der JaCoCo-Bibliothek im Gradle-Plugin als Alternative zur Abdeckungsmessung und Berichtserstellung.
Die empfohlene Art, Kover anzuwenden, sind die DSL-Plugins.
Die unterstützte Mindestversion von Gradle
ist 6.8
.
Fügen Sie Ihrer Build-Datei der obersten Ebene Folgendes hinzu:
Plugins { id("org.jetbrains.kotlinx.kover") Version "0.9.0-RC"}
Plugins { ID 'org.jetbrains.kotlinx.kover' Version '0.9.0-RC'}
Nachdem Sie das Kover Gradle-Plugin angewendet haben, werden Kover-Aufgaben zum Erstellen von Berichten und zur Überprüfung erstellt. Um beispielsweise einen HTML-Bericht zu generieren, führen Sie ./gradlew koverHtmlReport
aus – dies startet automatisch die Codekompilierung, die Ausführung instrumentierter Tests und es wird ein HTML-Bericht mit Messergebnissen im Build-Ordner generiert.
Es ist auch wichtig, dass nach der Anwendung des Kover Gradle-Plugins während der laufenden Tests die Klassen beim Laden in die JVM geändert (instrumentiert) werden, was zu einer gewissen Leistungseinbuße führen oder sich auf gleichzeitige Tests auswirken kann.
Wenn Sie die DSL-Plugins aus irgendeinem Grund nicht verwenden können, können Sie die herkömmliche Methode zum Anwenden von Plugins verwenden.
Buildscript { Repositories { mavenCentral() } Abhängigkeiten { classpath("org.jetbrains.kotlinx:kover-gradle-plugin:0.9.0-RC") } }apply(plugin = "org.jetbrains.kotlinx.kover")
Buildscript { Repositories { mavenCentral() } Abhängigkeiten { Klassenpfad 'org.jetbrains.kotlinx:kover-gradle-plugin:0.9.0-RC'} } Plugin anwenden: 'org.jetbrains.kotlinx.kover'
Sie müssen eine Abhängigkeit vom Projekt hinzufügen, in dem die Berichtsaufgabe ausgeführt wird
Abhängigkeiten { kover(Projekt(":another:Projekt")) }
In diesem Fall wird ein Bericht für das aktuelle Projekt erstellt, das mit dem Projekt :another:project
verknüpft ist.
Weitere Beispiele für die Anwendung des Gradle-Plugins finden Sie im Beispielordner
Kover Aggregated Plugin als Prototyp des Gradle Settings Plugins, erstellt, um die Einrichtung von Multiprojekt-Builds zu vereinfachen. Da es noch in den Kinderschuhen steckt, wird empfohlen, es nur für Test- oder Lieblingsprojekte zu verwenden.
Weitere Informationen finden Sie in der Dokumentation.
Das Kover Maven Plugin kann durch Angabe des Build-Plugins angewendet werden
<plugin> <groupId>org.jetbrains.kotlinx</groupId> <artifactId>kover-maven-plugin</artifactId> <version>0.9.0-RC</version> </plugin>
Die Liste der Kover-Ziele ist in diesem Dokumentabschnitt aufgeführt.
Ausführliche Informationen zur neuesten stabilen Version des Kover Maven Plugins finden Sie in der Dokumentation.
Eigenständige JVM-Anwendung zur Offline-Instrumentierung und Erstellung von für Menschen lesbaren Berichten.
Dokumentation der Kover CLI.
Bei der Offline-Instrumentierung werden auf der Festplatte gespeicherte Klassendateien geändert, um deren Abdeckung zu messen.
Die Möglichkeiten der Offline-Instrumentierung und Ausführung der instrumentierten Anwendungen werden in der Dokumentation beschrieben.
Der JVM-Agent ist eine JAR-Datei, die den in die JVM-Klassen geladenen Bytecode ändert, um die Abdeckung zu messen. Dokumentationen.
Eine JVM-Abhängigkeit, die es ermöglicht, Klassendateien auf einer Festplatte programmgesteuert zu instrumentieren.
Die Dokumentation von Kover enthält Artefakte
Siehe Beitragsrichtlinien.