[英]Separate Gradle source set for integration tests using Kotlin DSL
我正在開發在Kotlin 中實現的 Spring Boot 應用程序,並希望遷移 Gradle 構建以使用Gradle Kotlin DSL 。
我無法弄清楚的一件事是如何為我的集成測試設置單獨的源集和任務。
我的源代碼樹如下所示:
src
├── integrationTest
│ ├── kotlin
│ └── resources
├── main
│ ├── kotlin
│ └── resources
└── test
├── kotlin
└── resources
使用 Gradle 的 Groovy DSL 設置源集和任務如下:
// build.gradle
sourceSets {
integrationTest {
kotlin {
compileClasspath += sourceSets.main.output + configurations.testRuntimeClasspath
runtimeClasspath += output + compileClasspath
}
}
}
configurations {
integrationTestCompile.extendsFrom testCompile
integrationTestRuntime.extendsFrom testRuntime
}
task integrationTest(type: Test, dependsOn: []) {
testClassesDirs = sourceSets.integrationTest.output.classesDirs
classpath = sourceSets.integrationTest.runtimeClasspath
}
我找到了許多使用 Gradle Kotlin DSL 和其他源集的示例 - 但沒有任何用於組合的示例。
任何人都可以幫忙嗎?
以下是將 Groovy 腳本轉換為 Kotlin DSL 的方法:
java {
sourceSets {
val integrationTest by creating {
kotlin.apply {
compileClasspath += sourceSets["main"].output + configurations.testRuntimeClasspath
runtimeClasspath += output + compileClasspath
}
}
}
}
configurations["integrationTestCompile"].extendsFrom(configurations["testCompile"])
configurations["integrationTestRuntime"].extendsFrom(configurations["testRuntime"])
val integrationTest by tasks.creating(Test::class) {
val integrationTestSourceSet = java.sourceSets["integrationTest"]
testClassesDirs = integrationTestSourceSet.output.classesDirs
classpath = integrationTestSourceSet.runtimeClasspath
}
另請參閱:Gradle 的Migrating build logic from Groovy to Kotlin指南
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.