gpt4 book ai didi

gradle - 使用 Kotlin DSL 进行集成测试的单独 Gradle 源集

转载 作者:行者123 更新时间:2023-12-02 00:59:11 26 4
gpt4 key购买 nike

我正在开发一个在 Kotlin 中实现的 Spring Boot 应用程序,并希望迁移 Gradle 构建以使用 Gradle Kotlin DSL .
我无法弄清楚的一件事是如何设置 separate source set和我的集成测试任务。
我的源代码树如下所示:

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
}

另见: Migrating build logic from Groovy to Kotlin Gradle 指南

关于gradle - 使用 Kotlin DSL 进行集成测试的单独 Gradle 源集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51876992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com