使用Kotlin Gradle DSL向Kotlin项目添加集成测试

cdc*_*cdc 6 java gradle kotlin gradle-kotlin-dsl

我想向包含集成测试的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
Run Code Online (Sandbox Code Playgroud)

有关:

谢谢

TCH*_*TCH -1

您必须将以下配置添加到您的 build.gradle 文件中

configurations {
    integrationTestImplementation.extendsFrom implementation
    integrationTestRuntimeOnly.extendsFrom runtimeOnly
}


dependencies {
    intTestImplementation 'junit:junit:4.12'
    ...
}

sourceSets {
    integrationTest {
        kotlin {
            compileClasspath += main.output + test.output
            runtimeClasspath += main.output + test.output
            srcDir file('src/integrationTest/kotlin')
        }
    }
}

task integrationTest(type: Test, dependsOn: []) {
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
    useJUnitPlatform()
}
Run Code Online (Sandbox Code Playgroud)

来源: https ://docs.gradle.org/current/userguide/java_testing.html#sec:configuring_java_integration_tests