Spring JUnit 测试中如何在休眠自动生成之前初始化数据库?
How to initialize database before hibernate autogeneration in a Spring JUnit Test?
我正在使用 spring-boot-test
进行一些集成测试(weblayer + 数据库)。由于我的域 类 是 @Entity
,hibernate 将自动在 testdb 中生成数据库,该数据库是 h2
嵌入的。
问题:我如何运行 sql 脚本 在 任何 hibernate/jpa 初始化发生在测试之前?
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public void MyITest {
@Test
public void test() {
}
}
我添加了一个 src/test/resources/schema-test.sql
,但默认情况下似乎没有被拾取。尤其是在 hibernate autogeneration stuf 之前..
我只需要使用 src/test/resources/schema.sql
您可以使用 @Sql 并设置脚本路径
@Test
@Sql({"/test-schema.sql", "/test-user-data.sql"})
public void userTest {
// execute code that relies on the test schema and test data
}
我正在使用 spring-boot-test
进行一些集成测试(weblayer + 数据库)。由于我的域 类 是 @Entity
,hibernate 将自动在 testdb 中生成数据库,该数据库是 h2
嵌入的。
问题:我如何运行 sql 脚本 在 任何 hibernate/jpa 初始化发生在测试之前?
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public void MyITest {
@Test
public void test() {
}
}
我添加了一个 src/test/resources/schema-test.sql
,但默认情况下似乎没有被拾取。尤其是在 hibernate autogeneration stuf 之前..
我只需要使用 src/test/resources/schema.sql
您可以使用 @Sql 并设置脚本路径
@Test
@Sql({"/test-schema.sql", "/test-user-data.sql"})
public void userTest {
// execute code that relies on the test schema and test data
}