【发布时间】:2019-06-19 08:04:40
【问题描述】:
我有几个@SpringBootTest 测试,带有一个带有测试数据的data.sql 的enbebbed 数据库(h2)。每个测试都有自己的域,并且随着data.sql 越来越大。我想知道是否有任何选项可以为每个 @SpringBootTest 注释包含特定的 data.sql,例如 de properties source。
我知道有一个选项,即创建不同的application.properties 并在那里指定要加载的data.sql,但我想知道是否有更简洁的选项。
目前我有这个:
@SpringBootTest(classes = {MyApplication.class}, webEnvironment =
SpringBootTest.WebEnvironment.RANDOM_PORT)
@ExtendWith(SpringExtension.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class MyFunctionalTest {
我想要这样的东西:
@SpringBootTest(classes = {MyApplication.class}, webEnvironment =
SpringBootTest.WebEnvironment.RANDOM_PORT)
@ExtendWith(SpringExtension.class)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@H2Data("sepecific.sql)
public class MyFunctionalTest {
【问题讨论】:
-
这就是
@Sql注释的用途。 -
我无法让它与 Junit5 一起工作,我看到的所有示例都是与 Junit4 一起工作的。你能举个例子说明@SpringBootTest是如何加载的吗?并使用@ExtendWith(SpringExtension.class)
-
不管你用什么。只需添加
@Sql指向您要使用的脚本...
标签: java spring spring-boot spring-boot-test