如何在springboot中为集成测试创建liquibase变更集?

时间:2017-10-31 13:06:22

标签: spring-boot mocking liquibase integration-testing

我想通过liquibase changeset进行集成测试的模拟数据,如何使其不影响真正的数据库?我从here找到了部分想法,但我使用的是springboot,我希望有更简单的解决方案。

2 个答案:

答案 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

测试应该在两条路径中拾取所有变更集并运行