编辑:问题已解决,因为我注意到:
itest
未运行,因为test
阶段出现了一些错误,因此下一步itest
将不会继续itest
也适用于迁移,我已经仔细检查了日志并可以确认。我在itest
日志flyway
中进行搜索,然后看到了。 所以问题是一个错误。抱歉。
我有资料集:
itest
的定义如下:(project/gradle/integration.gradle
)
sourceSets {
itest {
java.srcDir file('src/itest/java')
resources.srcDir file('src/itest/resources')
compileClasspath += sourceSets.main.output + sourceSets.test.output
compileClasspath += configurations.testCompileClasspath
compileClasspath += configurations.testRuntimeClasspath
runtimeClasspath += output + compileClasspath + test.output
annotationProcessorPath += configurations.testAnnotationProcessor
}
}
task itest(type: Test) {
description = 'Runs the integration tests.'
group = 'verification'
testClassesDirs = sourceSets.itest.output.classesDirs
classpath = sourceSets.itest.runtimeClasspath
mustRunAfter test
useJUnitPlatform()
}
当我运行gradle test itest
时,我看到应用了迁移,但是当我运行gradle itest
时,却没有应用。我了解,如果像现在这样强制执行itest
之后执行的test
,我可以确保;但是有时候我只想运行itest
。
如何更改此脚本?
答案 0 :(得分:0)
迁移任务的运行始终是由于触发了gradle flywayMigrate
任务造成的。
也许某些插件更改了默认设置,以使test
任务取决于flywayMigrate
。
因此,如果您希望自己的任务触发flywayMigrate
,则可以这样做:
itest.dependsOn flywayMigrate
// reference:
clean.dependsOn flywayRepair # To repair the Flyway metadata table
build.dependsOn flywayMigrate # To migrate the schema to the latest version