我想向将包含集成测试的 Kotlin 项目添加一个额外的“源集”。我看到一些帖子谈到为普通 Java 项目或 Kotlin 做这件事,但使用 Groovy 而不是 Kotlin Gradle DSL。
总而言之,使用 Kotlin Gradle DSL:
- 如何添加可包含 Kotlin 代码、Java 代码和资源的额外“源集”,以便将集成测试与常规单元测试分开?
- 如何添加额外的任务和配置以独立于单元测试运行集成测试?
我希望目录结构看起来像这样:
src
main
java
kotlin
resources
test
java
kotlin
resources
integration
java
kotlin
resources
相关:
https://ryanharrison.co.uk/2018/07/25/kotlin-add-integration-test-module.html
https://www.petrikainulainen.net/programming/gradle/getting-started-with-gradle-integration-testing/
谢谢
最佳答案
首先,创建源集和配置:
sourceSets {
create("intTest") {
compileClasspath += sourceSets.main.get().output
runtimeClasspath += sourceSets.main.get().output
}
}
val intTestImplementation: Configuration by configurations.getting {
extendsFrom(configurations.implementation.get())
}
val intTestRuntimeOnly: Configuration by configurations.getting {
extendsFrom(configurations.runtimeOnly.get())
}
然后,创建任务来运行它们:
val integrationTest = task<Test>("integrationTest") {
description = "Runs integration tests"
group = "verification"
testClassesDirs = sourceSets["intTest"].output.classesDirs
classpath = sourceSets["intTest"].runtimeClasspath
shouldRunAfter("test")
}
此外,您还可以添加依赖项以供新源集使用。例如:
intTestImplementation("org.junit.jupiter:junit-jupiter-api:$junitVersion")
intTestRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitVersion")
关于java - 使用 Kotlin Gradle DSL 向 Kotlin 项目添加集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52074532/