小编Jul*_*nel的帖子

使用 Spring Boot 和 Liquibase 时如何在每次集成测试后清理数据库表?

我有一个副项目,我正在使用 Spring Boot、Liquibase 和 Postgres。

我有以下测试序列:

test1();
test2();
test3();
test4();
Run Code Online (Sandbox Code Playgroud)

在这四个测试中,我创建了相同的实体。由于我没有在每个测试用例之后从表中删除记录,因此出现以下异常:org.springframework.dao.DataIntegrityViolationException

我想通过以下约束来解决这个问题:

  1. 我不想使用@repository来清理数据库。
  2. 我不想杀死数据库并在每个测试用例上创建它,因为我正在使用 TestContainers 并且这样做会增加完成测试所需的时间。

简而言之:如何在每个测试用例之后从一个或多个表中删除记录,而无需 1) 使用@repository每个实体的 2) 在每个测试用例上终止并启动数据库容器?

java liquibase spring-boot testcontainers

4
推荐指数
2
解决办法
3349
查看次数

标签 统计

java ×1

liquibase ×1

spring-boot ×1

testcontainers ×1