SqlScriptsTestExecutionListener

SqlScriptsTestExecutionListener

我有一个@DataJpaTest,它需要一些数据库初始化。我尝试将data.sql放在资源文件夹中,并且可以正常工作。但是,我想使用此测试专用的数据来初始化数据库。

看来,@Sql是这样做的首选方法。但是,就我而言,尽管指定的文件位于资源中,但它不起作用。数据库只是没有初始化。

我能做什么?

最佳答案

@Sql注释由SqlScriptsTestExecutionListener处理。没有此侦听器,将不会对@Sql注释进行评估。当此侦听器在标准@DataJpaTest中注册时,如果您显式指定其他侦听器,则语义会发生变化。

在相关的测试中,我已经注册了一个自定义的侦听器,并且由于SqlScriptsTestExecutionListener没有与其他侦听器一起被明确提及,因此Spring并未添加它。注释掉@TestExecutionListeners注释会导致像添加SqlScriptsTestExecutionListener一样使用sql文件。

09-19 00:55