我已为IntegrationTest配置了gradle任务,如附带的源代码。
分别执行时,test
和integrationTest
任务都可以正常工作,但是像./gradlew clean check
或./gradlew clean test integrationTest
这样的共同执行在integrationTest
阶段compileIntegrationTestGroovy
失败,错误为{{ 1}}。
查看unable to resolve class...
目录表明执行build/classes
后任务会删除所有生成的主类和测试类。
是否有任何方法可以禁止在test
之后删除类或其他替代方法来解决此问题。
test
sourceSets {
'integration-test' {
compileClasspath += sourceSets.main.output
runtimeClasspath += sourceSets.main.output
java.srcDir(file('src/integration-test/java'))
groovy.srcDir(file('src/integration-test/groovy'))
resources.srcDir(file('src/integration-test/resources'))
}
}
configurations {
integrationTestImplementation.extendsFrom(testImplementation)
integrationTestRuntimeOnly.extendsFrom(testRuntimeOnly)
}
task integrationTest(type: Test) {
description = 'Executes integration tests'
group = 'verification'
testClassesDirs = sourceSets.'integration-test'.output.classesDirs
classpath = sourceSets.'integration-test'.runtimeClasspath
beforeTest { descriptor ->
logger.lifecycle("Running test: ${descriptor}")
}
mustRunAfter(test)
}
check.dependsOn(integrationTest)
的结果。 app-core在根项目下。实际执行./gradlew :app-core:clean :app-core:check --dry-run
时,:app-core:compileIntegrationTestGroovy
步骤失败。
:app-core:check