Spring Boot gradle 与 Spock 的集成测试

Spring boot gradle integration test with Spock

提问人:Evgenii 提问时间:11/14/2023 更新时间:11/15/2023 访问量:56

问:

我正在使用 Spring Boot + Gradle + Spock (groovy) 进行集成和单元测试。
我能够配置单元测试以与 Spock 一起使用。 集成测试无法启动,因为它们看不到项目文件。
在这里,我已经为集成测试完成了(清理)配置。
我确实相信问题是我没有正确配置依赖项+在不同的目录中进行集成测试。

sourceSets {
    integrationTest {
        groovy.srcDir "$projectDir/src/integrationTest/groovy"
        resources.srcDir "$projectDir/src/integrationTest/resources"
        compileClasspath += sourceSets.main.output
        runtimeClasspath += sourceSets.main.output
    }
}

configurations {
    integrationTestImplementation.extendsFrom testImplementation
    integrationTestRuntimeOnly.extendsFrom testRuntimeOnly
}

task integrationTest(type: Test) {
    description = 'Runs the integration tests.'
    group = 'verification'

    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
}

目录结构是

src
 -main
      --java
 -test
      --groovy
 -integrationTest
      --groovy
java spring-boot gradle groovy spock

评论


答:

3赞 Vampire 11/14/2023 #1

鉴于您使用的是足够新的 Gradle 版本,我建议您使用 JVM 测试套件插件来定义您的其他测试套件。它记录在 https://docs.gradle.org/current/userguide/jvm_test_suite_plugin.html 中,还显示了您的确切用例,即需要访问生产代码的集成测试。