Gradle-如何在itest源集中进行飞行路线迁移

时间:2019-09-26 08:30:58

标签: gradle integration-testing flyway

编辑:问题已解决,因为我注意到:

  • itest未运行,因为test阶段出现了一些错误,因此下一步itest将不会继续
  • itest也适用于迁移,我已经仔细检查了日志并可以确认。我在itest日志flyway中进行搜索,然后看到了。

所以问题是一个错误。抱歉。

我有资料集:

  • 主要
  • 测试
  • itest

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

如何更改此脚本?

1 个答案:

答案 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