Java DirtiesContext没有表之后的测试
Spring启动父级-2.0.5.0版本 我有几项集成测试:Java DirtiesContext没有表之后的测试,java,database,spring-boot,spring-data-jpa,spring-test,Java,Database,Spring Boot,Spring Data Jpa,Spring Test,Spring启动父级-2.0.5.0版本 我有几项集成测试: 测试类对某些依赖项使用@MockBean注释,因此我在类上获得了@DirtiesContext(classMode=DirtiesContext.classMode.AFTER\u class) 另一个使用db的测试类(假设在h2中使用JpaRepository进行一些选择,它完全由spring管理) 第一个测试通过,但第二个测试有异常: 原因:org.hibernate.exception.sqlgrammareexception
@MockBean
注释,因此我在类上获得了@DirtiesContext(classMode=DirtiesContext.classMode.AFTER\u class)
原因:org.hibernate.exception.sqlgrammareexception:无法准备语句
原因:org.h2.jdbc.jdbcsql异常:
未找到表“x”;SQL语句:
看起来db已经创建了,但DDL还没有完成
我怎样才能解决这个问题
当然,我可以在第二次测试中添加注释
@AutoConfigureTestDatabase
,但我觉得在使用@DirtiesContext
数据库初始化成功后,在每个使用db的测试类上添加此注释是错误的。如果逐个运行测试,您的测试是否有效?是的,它工作正常(可以逐个运行,也可以按相反的顺序运行)。在这种情况下,您可以轻松添加测试方法顺序。否则需要更多细节,例如GitHub上的示例项目示例。