此页面记录了 Kotlin Gradle 插件使用的集成测试基础设施。这些测试跨不同的 Gradle 版本、JDK 版本和平台(JVM、JS、Native、Android 等)验证插件的行为。
集成测试对于确保 Kotlin Gradle 插件与各种 Gradle 版本之间的兼容性,以及测试跨不同平台和构建配置的功能至关重要。
集成测试使用基于 JUnit 5 和 Gradle TestKit 的自定义测试框架。该基础设施提供了一个 DSL,用于设置测试项目、配置构建选项和执行测试构建。
来源
集成测试按表示它们所测试组件的标签进行分类。这些标签映射到可以单独或分组运行的特定 Gradle 任务。
来源
测试在 Gradle 版本矩阵上运行,以确保兼容性。支持以下 Gradle 版本:
| Gradle 版本 | 描述 |
|---|---|
| 7.0 | 最低不支持版本(用于负面测试) |
| 7.6.3 | 最低支持版本 |
| 8.0.2 - 8.13 | 支持的版本 |
测试系统还支持 AGP(Android Gradle 插件)版本兼容性测试,可与适当的 Gradle 版本组合进行。
来源
测试框架提供了一个用于编写集成测试的 DSL。这个 DSL 可以轻松设置项目、配置构建以及断言构建结果。
用于设置和运行测试的代码示例
来源
测试可以执行带有特定参数的 Gradle 构建,并对构建结果进行断言,包括检查任务是否成功执行、任务输出以及构建输出消息。
来源
集成测试框架的一个强大功能是构建脚本注入,它允许测试在测试执行期间将代码注入构建脚本。
构建脚本注入示例
此功能允许测试:
来源
测试可以使用注解进行参数化,以针对不同的 Gradle 版本、JDK 版本和其他配置运行。
来源
测试可以配置为使用特定的环境变量、内存限制和其他设置。
来源
集成测试可以使用 Gradle 任务运行,并提供运行特定类别或单个测试的选项。
| 任务 | 描述 |
|---|---|
kgpJvmTests | 运行所有 Kotlin/JVM 插件测试 |
kgpJsTests | 运行所有 Kotlin/JS 插件测试 |
kgpNativeTests | 运行所有 Kotlin/Native 插件测试 |
kgpMppTests | 运行所有多平台插件测试 |
kgpAndroidTests | 运行所有 Android 插件测试 |
kgpDaemonTests | 运行 Gradle 和 Kotlin 守护进程测试 |
kgpOtherTests | 运行其他插件(kapt、allopen 等)的测试 |
kgpAllParallelTests | 并行运行所有测试(守护进程测试除外) |
check | 运行所有测试(包括以上所有测试) |
要运行特定的测试类或方法
./gradlew :kotlin-gradle-plugin-integration-tests:kgpJvmTests --tests org.jetbrains.kotlin.gradle.SimpleKotlinGradleIT
来源
运行 Kotlin Native 测试:
local.properties 文件中添加 kotlin.native.enabled=true 来进行本地构建。-DkonanDataDirForIntegrationTests=/path/to/.konan 指定 Kotlin Native 目录。来源
assemble 而不是 build。@DisplayName 注解以获得更好的清晰度。@JvmGradlePluginTests)。来源
在 IDE 中运行测试时,系统会自动配置构建以在进程内运行并启用调试。
调试测试中的 Kotlin 守护进程
kotlinDaemonDebugPort = 5005来源
Kotlin Gradle 插件集成测试框架提供了一种在不同环境中测试插件功能的全面方法。主要功能包括:
通过利用此基础设施,开发人员可以确保 Kotlin Gradle 插件在各种配置和环境中正常工作。