在Spring JUnit测试中,如何在休眠自动生成之前初始化数据库?

时间:2018-07-23 13:20:00

标签: java spring hibernate spring-boot spring-test

我正在使用spring-boot-test进行集成测试(网络层+数据库)。因为我的域类是@Entity,所以hibernate会自动在嵌入h2的testdb中生成数据库。

问题:在测试中对hibernate / jpa进行任何初始化之前,如何在之前运行sql脚本?

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public void MyITest {
    @Test
    public void test() {
    }
}

我添加了一个src/test/resources/schema-test.sql,但是默认情况下似乎没有发现。尤其是在休眠自动生成程序之前。

2 个答案:

答案 0 :(得分:0)

我只需要使用src/test/resources/schema.sql

答案 1 :(得分:0)

您可以使用 @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 TEST Database