加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

spring – 与Flyway的集成测试

发布时间:2020-12-15 01:39:51 所属栏目:大数据 来源:网络整理
导读:我正在使用Flyway来处理数据库迁移.一切正常:迁移文件的默认位置是: main/resource/db/migration/V1... 我正在运行集成测试,我的设置使用单独的数据库模式进行集成,我也想用flyway管理它. 但是,集成测试位于测试文件夹(不是主文件夹)中.当Flyway bean执行m

我正在使用Flyway来处理数据库迁移.一切正常:迁移文件的默认位置是:

main/resource/db/migration/V1...

我正在运行集成测试,我的设置使用单独的数据库模式进行集成,我也想用flyway管理它.
但是,集成测试位于测试文件夹(不是主文件夹)中.当Flyway bean执行migrate()时,它找不到迁移文件,因为它们位于主文件夹中.如果我将迁移文件放在test / resource / db / migration / V1中……它可以工作.

我真的不想将这些文件复制到测试资源文件夹中,所以我不必同时维护它们.有没有办法强制Flyway使用与普通应用程序相同的迁移文件进行集成测试?

最佳答案
我假设你正在使用Maven?对于单元测试,test / resources和main / resources都会加载到类路径中.测试/资源文件通常优先,因为它们被放置在类路径中更高的位置 – 如果我没记错的话.无论如何,我不建议你这样做.

相反,我建议你在一个单独的目录(即test / resources / integration / migration /)中为集成测试制作一个完全不同的Flyway配置,并在main / resources / db / migration默认目录之后运行.

即使这样,也可能更容易不使用Flyway来设置集成数据夹具,而是使用其他一些数据库数据加载工具,如DbUnit(我确定还有其他工具).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读