@Sql注解位于@Test方法下,用于执行Sql脚本。
一般用途:
@Sql(scripts = "/folder/my_favourite_script.sql")
@Test
假设文件夹中有1000个sql文件,我想一次执行所有这些文件,如何使用掩码来描述这些文件?
预期结果:
@Sql(scripts = "/folder/*.sql")
@Test
不幸的是,它不是这样工作的:
异常错误:无法从类路径资源[folder/*.sql]中读取SQL脚本;嵌套异常是java.io。文件未找到异常:无法打开类路径资源[folder/*.sql],因为它不存在
1条答案
按热度按时间z0qdvdin1#
@Sql
注解(以及@SqlGroup
,它接受一个@Sql
数组),你不能传递一个文件掩码并处理它。因此,您可以选择:
1.PostgreSQL数据库:如前所述,你不能通过屏蔽包含任何现有注解的文件。但是,check this link out学习如何强制执行它。基本上,你必须添加一个
@Autowired DataSource ds
,并通过调用它的操作来执行脚本,而不是注解魔术...这样你也可以为任何特定的文件夹添加文件屏蔽逻辑。1.H2:runscript命令(如果您将H2用于测试数据库)。您可以通过在资源中创建一个.sql(我们将其称为scripts.sql)文件来使用此命令,该文件包含以下内容:
然后仅包括具有如下注解的所述文件:
@Sql("scripts.sql")