java - Spring 启动 : How to setup test data with liq

我正在尝试使用 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

最佳答案

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

关于java - Spring 启动 : How to setup test data with liquibase in unit test,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35997898/

相关文章:

spring - 在 Spring 中使用 @PropertyResource 访问多个属性文件

java - 无法反序列化 Spring Session Scoped bean

java - 如何访问 Thymeleaf 模板中的系统属性?

java - Spring Batch 异步处理器配置以获得最佳性能

java - SpringBoot 应用中的@RabbitListener 方法测试

java - 更改 GET 页面请求上的数据(处理预加载请求)

java - 通过 Spring Config 扫描 Spring Data 存储库?

java - Hibernate 和 PostgreSQL 中具有 UserType 的数组 -->

spring - 在 Spring Boot 中从 FTP 发送和接收文件

mysql - BatchingBatcher "JDBC driver did not retur