<include file="db/liquibase-changelog.xml"/> //changelog file in /src/main/resources (creating schema etc.)
<include file="changes/01-insert-data.xml" relativeToChangelogFile="true"/> //changes file in /src/test/resources/db, file is relative to liquibase-changelog-test.xml file (inserting data for tests)
3条答案
按热度按时间iyfjxgzm1#
您可以使用liquibase的上下文参数。例如,创建变更集,它将从sql文件中加载插入并为其指定上下文。就像这样:
在spring Boot 的
application.properties
中指定属性liquibase.contexts=test
。eyh26e7m2#
假设生产变更集放在resources/db/changelog/changes中,并且在/db/changelog中有一个db.changelog-master.yaml,配置如下
将测试变更集放在test/resources/db/changelog/testchanges中,并使用以下配置在test/resources/db/changelog中创建db.changelog-master.yaml
该测试应该选取两个路径中的所有变更集并运行
qxsslcnc3#
使用@Krzysztof Tomaszewski的最终解决方案
测试的应用程序属性文件应覆盖liquibase文件名,文件夹“test/resources”中应有一个liquibase文件,其中应包括“main/resources”中的liquibase文件,并且它可以包含一些用于插入测试数据的更改集。
我最终得到了以下配置:
(1)rewrite change-log file property(2)rewrite search-path property
liquibase-changelog-test.xml
看起来像这样: