我有好几个 @SpringBootTest
注解测试。我的应用程序每次运行时都会使用内存中的h2数据库。
当我通过ide单独运行每个测试用例时,所有的用例都可以工作。当我跑的时候 mvn test
但是,我得到了sql约束冲突错误,因为很明显我的应用程序正在尝试再次设置我的数据库(并且数据已经存在,导致了错误)。
全部删除 @SpringBootTest
除了一个案子我可以跑 mvn test
成功。
我的问题是,我该怎么做,这样我就可以运行所有的测试 mvn test
又不想建立我的数据库?我可以为这个添加一些注解吗?
或者有没有办法让测试等待数据被删除后再重新设置?
谢谢
1条答案
按热度按时间pinkon5k1#
使用
@DirtiesContext
测试类和/或方法上的注解。这样,一旦测试完成,被操纵的数据就会恢复。https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/annotation/dirtiescontext.html