Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DirtiesContext没有表之后的测试_Java_Database_Spring Boot_Spring Data Jpa_Spring Test - Fatal编程技术网

Java DirtiesContext没有表之后的测试

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

Spring启动父级-2.0.5.0版本

我有几项集成测试:

  • 测试类对某些依赖项使用
    @MockBean
    注释,因此我在类上获得了
    @DirtiesContext(classMode=DirtiesContext.classMode.AFTER\u class)
  • 另一个使用db的测试类(假设在h2中使用JpaRepository进行一些选择,它完全由spring管理)
  • 第一个测试通过,但第二个测试有异常:
    
    原因:org.hibernate.exception.sqlgrammareexception:无法准备语句
    原因:org.h2.jdbc.jdbcsql异常:
    未找到表“x”;SQL语句:

    看起来db已经创建了,但DDL还没有完成

    我怎样才能解决这个问题


    当然,我可以在第二次测试中添加注释
    @AutoConfigureTestDatabase
    ,但我觉得在使用
    @DirtiesContext

    数据库初始化成功后,在每个使用db的测试类上添加此注释是错误的。如果逐个运行测试,您的测试是否有效?是的,它工作正常(可以逐个运行,也可以按相反的顺序运行)。在这种情况下,您可以轻松添加测试方法顺序。否则需要更多细节,例如GitHub上的示例项目示例。