【问题标题】:Spring Boot: How to setup test data with liquibase in unit testSpring Boot:如何在单元测试中使用 liquibase 设置测试数据
【发布时间】:2016-06-30 02:28:08
【问题描述】:

我正在尝试使用 liquibase 设置数据库架构和一些测试数据以进行一些测试。每个测试都有一个单独的更改日志,用于设置架构和测试的一些特定数据。

为了使我的测试正常工作,我需要在每次测试之前删除架构并用新的测试数据填充它。但是,这似乎不起作用,因为某些测试失败了,因为旧的测试数据仍然可用。我认为我的配置不正确。如何在每次测试之前强制 liquibase 删除架构?

我的测试如下:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyTestConfig.class)
@TestPropertySource(properties = "liquibase.change-log=classpath:changelog/schema-with-testdata.xml")
public class MyRepositoryTest {

测试配置如下:

@SpringApplicationConfiguration
@Configuration
@EnableAutoConfiguration
@ComponentScan("com.mypackage")
@EntityScan(basePackages = { "com.mypackage.domain" })
@EnableJpaRepositories(basePackages = { "com.mypackage.domain", "com.mypackage.infra.persistence" })
public class MyTestConfig {

而src/main/test/resources下的application.properties是

liquibase.drop-first=true
spring.jpa.hibernate.ddl-auto=none

【问题讨论】:

标签: java spring spring-boot liquibase


【解决方案1】:

有一个spring.liquibase.dropFirst 配置属性。也许这就是你要找的?

【讨论】:

    【解决方案2】:

    不确定这是否完全回答了您的问题。还有另一个属性 liquibase.default-schema=schemaNameToCreate

    但即便如此,我也无法从头开始创建架构。

    【讨论】:

      猜你喜欢
      • 2019-07-17
      • 1970-01-01
      • 2015-06-14
      • 2016-05-28
      • 1970-01-01
      • 2018-09-08
      • 2019-04-10
      • 2020-11-12
      相关资源
      最近更新 更多