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