Spring boot gradle 与 Spock 集成测试

问题描述 投票:0回答:2

我使用 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
2个回答
0
投票

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


0
投票

如果我没记错的话,将其添加到您的

build.gradle
文件中即可修复它

tasks.named('test') {
    useJUnitPlatform()
}
© www.soinside.com 2019 - 2024. All rights reserved.