maven:有多个@springboottests会导致在运行mvn测试时多次设置h2:memory数据库

ioekq8ef  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(279)

我有好几个 @SpringBootTest 注解测试。我的应用程序每次运行时都会使用内存中的h2数据库。
当我通过ide单独运行每个测试用例时,所有的用例都可以工作。当我跑的时候 mvn test 但是,我得到了sql约束冲突错误,因为很明显我的应用程序正在尝试再次设置我的数据库(并且数据已经存在,导致了错误)。
全部删除 @SpringBootTest 除了一个案子我可以跑 mvn test 成功。
我的问题是,我该怎么做,这样我就可以运行所有的测试 mvn test 又不想建立我的数据库?我可以为这个添加一些注解吗?
或者有没有办法让测试等待数据被删除后再重新设置?
谢谢

pinkon5k

pinkon5k1#

使用 @DirtiesContext 测试类和/或方法上的注解。这样,一旦测试完成,被操纵的数据就会恢复。
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/annotation/dirtiescontext.html

相关问题