Kover
Kover是一套用于收集编译为JVM和Android平台的Kotlin代码测试覆盖率的解决方案。
Kover工具集:
Kover Gradle插件
有关Kover Gradle插件最新稳定版本的完整信息,请参阅文档。
功能
- 通过
JVM
测试收集代码覆盖率(尚不支持JS和原生目标)。 - 生成
HTML
和XML
报告。 - 支持
Kotlin JVM
、Kotlin Multiplatform
项目。 - 支持带有构建变体的
Kotlin Android
项目(尚不支持在Android设备上执行的插桩测试)。 - 支持混合
Kotlin
和Java
源代码 - Gradle插件中具有边界的验证规则,以跟踪覆盖率。
- 在Gradle插件中使用JaCoCo库作为覆盖率测量和报告生成的替代方案。
推荐使用插件DSL应用Kover。
支持的最低Gradle
版本为6.8
。
在顶级构建文件中添加以下内容:
Kotlin
plugins {
id("org.jetbrains.kotlinx.kover") version "0.8.3"
}
Groovy
plugins {
id 'org.jetbrains.kotlinx.kover' version '0.8.3'
}
应用Kover Gradle插件后,将创建用于生成报告和验证的Kover任务。
例如,要生成HTML报告,运行./gradlew koverHtmlReport
- 这将自动启动代码编译、执行插桩测试,并在构建文件夹中生成带有测量结果的HTML报告。
同样重要的是,应用Kover Gradle插件后,在运行测试时,加载到JVM中的类会被修改(插桩),这可能导致一些性能下降,或影响并发测试。
传统插件应用方法
如果由于某些原因无法使用插件DSL,可以使用传统方法应用插件。
Kotlin
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlinx:kover-gradle-plugin:0.8.3")
}
}
apply(plugin = "org.jetbrains.kotlinx.kover")
Groovy
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.jetbrains.kotlinx:kover-gradle-plugin:0.8.3'
}
}
apply plugin: 'org.jetbrains.kotlinx.kover'
创建合并不同Gradle项目覆盖率信息的报告
您需要在运行报告任务的项目中添加对其他项目的依赖
dependencies {
kover(project(":another:project"))
}
在这种情况下,将为当前项目与:another:project
项目合并生成报告。
更多Gradle插件应用示例可以在示例文件夹中找到
Kover聚合插件
Kover聚合插件是Gradle Settings插件的原型,旨在简化多项目构建的设置。 它还处于初期阶段,建议仅用于测试或小型项目。
详细信息请参阅文档。
Kover Maven插件
可以通过指定构建插件来应用Kover Maven插件
<plugin>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kover-maven-plugin</artifactId>
<version>0.8.3</version>
</plugin>
Kover目标列表在本文档部分中指定。
有关Kover Maven插件最新稳定版本的完整信息,请参阅文档。
Kover命令行工具
用于离线插桩和生成人类可读报告的独立JVM应用程序。
Kover离线插桩
离线插桩是修改存储在磁盘上的类文件以测量其覆盖率。
离线插桩和运行插桩应用程序的方法在文档中有描述。
Kover JVM代理
JVM代理是一个jar文件,用于修改加载到JVM中的类的字节码,以测量覆盖率。 文档。
Kover功能构件
一个JVM依赖项,允许以编程方式对磁盘上的类文件进行插桩。
本地构建和贡献
请参阅贡献指南。