gradle - Gradle - 我如何在 itest 源集中进行飞行迁移
问题描述
编辑:问题解决了,因为我注意到:
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
。
如何更改此脚本?
解决方案
Migrate 任务运行总是因为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
推荐阅读
- reactjs - 卡在 reify:babel-runtime:timing reifyNode:node_modules/eslint-plugin-jsx-a11y 在 80067 毫秒内完成 创建反应应用程序时
- twilio - 当被叫方拒绝呼叫时如何获取事件
- cmake - 为什么 CMake 中的 RPATH_CHECK 会删除可执行文件?
- oracle - oracle ADB中“集群等待”的原因是什么?
- python - Cast Function 在转换 Django 之前是否执行舍入?
- spring-security - Spring Security 返回 WWW-Authenticate 标头并在禁用 httpBasic 时显示 http 基本窗口
- cron - Cronjob 在每 5 分钟的某个特定时间
- javascript - 如果折扣大于给定值,则获取链接
- azure-devops - 有没有办法允许用户运行 Azure DevOps 管道,但不允许他们进行编辑?
- visual-studio-code - VScode 未编译为 .bin 文件