【发布时间】:2019-12-11 10:02:36
【问题描述】:
我遇到了一个愚蠢的情况,我在公共库的 pom 文件中定义了我的 flyway 依赖项。这个通用库恰好有加载上下文的 Spring Boot 集成测试,所以当这些集成测试运行时,我得到了
java.lang.IllegalStateException: 找不到迁移位置:[classpath:db/migration](请添加迁移或检查您的 Flyway 配置)
我宁愿不在所有应用程序的 pom 中复制依赖项定义,也不能删除集成测试。我也不想有一个虚拟迁移文件夹。我可以在集成测试中以某种方式关闭它吗?
@SpringBootTest
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
@DisableFlywaySomehow
public class MyITest {...}
【问题讨论】:
-
使用不同的
profile并在application.{properties,yml}文件中为该配置文件设置spring.flyway.enabled = false。您也可以对您用于相关工件的test配置文件进行相同尝试...干杯! -
真正的问题是:为什么您的集成测试与您的 flyway 迁移位于同一地点?为什么它们不在单独的(子)模块中?
-
等等.. 你是建议 flyway 迁移应该有自己的模块还是集成测试不属于公共库?后者我同意。前者对我来说是新闻。
-
@x80486 谢谢。我知道我错过了一些简单的东西。如果您愿意,请继续回答。
-
从长远来看,那种柔术会让事情变得更糟。问题出在其他地方,你只是不想通过破解这个东西来创建另一个。
标签: java spring spring-boot flyway