我使用 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
鉴于您使用的是足够新的 Gradle 版本,我建议您使用 JVM 测试套件插件来定义额外的测试套件。它记录在https://docs.gradle.org/current/userguide/jvm_test_suite_plugin.html,并且还显示了您的确切用例、需要访问生产代码的集成测试。
如果我没记错的话,将其添加到您的
build.gradle
文件中即可修复它
tasks.named('test') {
useJUnitPlatform()
}