spring boot test加载在java / resources而不是test / resources中定义的schema.sql

时间:2018-01-31 16:41:09

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

我有以下测试:

@RunWith(SpringRunner.class)
@ContextConfiguration
@SpringBootTest(classes = {AccountsServerTest.class, PostgresSQLTestDbConfig.class})
@ActiveProfiles("test")
public class NodeRepositoryTest {
......
}

我还有src/main/resources下的schema.sql和data.sql脚本,它们应该在应用程序启动时运行。

我在src/test/resources/下还有另外两个sql文件,我想在NodeRepositoryTest启动时运行它们。

但是,出于某种原因,当我启动NodeRepositoryTest时,会执行src/main/resources中的脚本。

也许,之前有人遇到过同样的问题?

我真的很感激任何帮助,

由于

1 个答案:

答案 0 :(得分:2)

您可以手动定义应该应用于测试方法/测试类的.sql脚本。

请查看官方文档(https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html)中的以下示例:

@Test
@Sql({"/test-schema.sql", "/test-user-data.sql"})
public void userTest {
    // execute code that relies on the test data
}