【问题标题】:Why is @Sql not working within Spring test?为什么@Sql 在 Spring 测试中不起作用?
【发布时间】:2019-12-19 09:21:14
【问题描述】:

我有一个@DataJpaTest,它需要一些数据库初始化。我尝试在资源文件夹中放置一个data.sql,它可以工作。但是,我想用特定于此测试的数据初始化数据库。

看来,@Sql 是这样做的首选方式。但是,在我的情况下,它不起作用,尽管指定的文件位于资源中。数据库根本没有初始化。

我能做什么?

【问题讨论】:

    标签: java testing spring-data-jpa


    【解决方案1】:

    @Sql 注解由SqlScriptsTestExecutionListener 处理。如果没有此侦听器,将不会评估 @Sql 注释。虽然此侦听器在标准 @DataJpaTest 中注册,但如果您明确指定更多侦听器,语义会发生变化。

    在相关测试中,我注册了一个自定义侦听器,因为 SqlScriptsTestExecutionListener 没有与其他侦听器一起明确提及,所以它没有在 spring 中添加。注释掉 @TestExecutionListeners 注释会导致使用 sql 文件,就像添加 SqlScriptsTestExecutionListener 一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 2012-08-15
      相关资源
      最近更新 更多