【问题标题】:Maven: Having multiple @SpringBootTests causes H2:memory database to be set up multiple times when running mvn testMaven:拥有多个@SpringBootTests会导致H2:运行mvn test时多次设置内存数据库
【发布时间】:2020-12-07 20:29:09
【问题描述】:

我有几个 @SpringBootTest 带注释的测试。我的应用使用 H2 内存数据库,该数据库在每次应用运行时都会设置。

当我通过我的 IDE 单独运行每个测试用例时,所有用例都有效。但是,当我运行 mvn test 时,我收到 SQL 约束冲突错误,因为显然我的应用程序正在尝试再次设置我的数据库(并且数据已经存在,导致错误)。

删除除一个之外的所有@SpringBootTest 案例允许我成功运行mvn test

我的问题是,我如何才能使用mvn test 运行所有测试,而无需再次尝试设置我的数据库?我可以为此添加一些注释吗?

或者有没有办法让测试在重新设置之前等待数据被删除?

谢谢

【问题讨论】:

    标签: java spring spring-boot maven spring-boot-test


    【解决方案1】:

    在测试类和/或方法上使用@DirtiesContext 注释。这样,一旦测试完成,操作数据就会恢复。

    https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/annotation/DirtiesContext.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 2016-10-17
      • 2011-12-28
      • 2013-03-30
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多