Код: Выделить всё
@Test
@Sql({"/db/schema.sql", "/db/accountConfig.sql", "/db/functions/fnSomething.sql"})
public void verifySomething() {
...
}
Я использую Junit 4, Spring Boot, Java 15, Testcontainers.Что я пробовал...
- Я пробовал использовать @BeforeClass для класса, который расширяют мои тестовые классы но, похоже, это работает после моих тестов.
- В Testcontainers есть функция сценария инициализации, но для этого требуется только один файл, а это не идеально.
- Я' Я также пробовал ScriptUtils.executeSqlScript, но по какой-то причине тестовым контейнерам это не нравится.
Код: Выделить всё
@ContextConfiguration(initializers = AbstractIntegrationTest.Initializer.class)
public abstract class AbstractIntegrationTest {
@ClassRule
public static MSSQLServerContainer mssqlserver = new MSSQLServerContainer();
public static class Initializer implements ApplicationContextInitializer {
@Override
public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
ConfigurableEnvironment environment = configurableApplicationContext.getEnvironment();
Properties props = new Properties();
props.put("spring.datasource.driver-class-name", mssqlserver.getDriverClassName());
props.put("spring.datasource.url", mssqlserver.getJdbcUrl());
props.put("spring.datasource.username", mssqlserver.getUsername());
props.put("spring.datasource.password", mssqlserver.getPassword());
environment
.getPropertySources()
.addFirst(new PropertiesPropertySource("myTestDBProps", props));
configurableApplicationContext.setEnvironment(environment);
}
}
Подробнее здесь: https://stackoverflow.com/questions/685 ... -all-tests
Мобильная версия