我想通过liquibase changeset进行集成测试的模拟数据,如何使其不影响真正的数据库?我从here找到了部分想法,但我使用的是springboot,我希望有更简单的解决方案。
答案 0 :(得分:7)
您好,您可以使用liquibase的上下文参数。例如,创建changeset,它将从sql文件加载插入并为其指定上下文。
类似的东西:
<changeSet id="test_data_inserts" author="me" context="test">
<sqlFile path="test_data.sql" relativeToChangelogFile="true" />
</changeSet>
并在spring boot application.properties
中进行测试,指定属性liquibase.contexts=test
。
答案 1 :(得分:3)
假定生产变更集放置在resources / db / changelog / changes内,并且/ db / changelog中有一个db.changelog-master.yaml,具有以下配置
databaseChangeLog:
- includeAll:
path: db/changelog/changes
将测试更改集放入test / resources / db / changelog / testchanges并创建 使用以下配置在test / resources / db / changelog中的db.changelog-master.yaml
databaseChangeLog:
- includeAll:
path: db/changelog/changes
- includeAll:
path: db/changelog/testchanges
测试应该在两条路径中拾取所有变更集并运行