Попытка создать несколько сквозных тестов для весеннего пакетного приложения, которое прекрасно работает.Я получаю сообщение об ошибке sql, потому что оно не инициализирует таблицы обработки Spring Batch: org.postgresql.util.PSQLException: ERROR: relation "batch_job_instance" does not exist
У меня есть этот код в src/test/resources/application.properties
:
spring.datasource.initialize=true
spring.datasource.initialization-mode=always
spring.datasource.platform=postgresql
spring.batch.initialize-schema=always
То же самое у меня на`src / main / resources / application.properties и works.
Это код, который у меня есть для ApplicationTest
:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes={
TestConfiguration.class,
JobCompletionNotificationListener.class,
BatchConfiguration.class
})
@SpringBatchTest
public class ApplicationTests {
@Autowired
private JobLauncherTestUtils jobLauncherTestUtils;
@Test
public void testJob() throws Exception {
JobExecution jobExecution = jobLauncherTestUtils.launchJob();
}
}
У меня есть конкретный TestConfiguration
для генерации Bean
с DataSource
.
@Configuration
@PropertySource("application.properties")
public class TestConfiguration {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("spring.datasource.driverClassname"));
dataSource.setUrl(env.getProperty("spring.datasource.url"));
dataSource.setUsername(env.getProperty("spring.datasource.username"));
dataSource.setPassword(env.getProperty("spring.datasource.password"));
return dataSource;
}
Я ожидал, что будут созданы все таблицы (внутренние таблицы Batch и таблицы, определенные в schema-all.sql
).
Но я получаю следующееошибка org.postgresql.util.PSQLException: ERROR: relation "batch_job_instance" does not exist
.
Я не понимаю, почему в основном приложении все работает автоматически, а в тесте - нет.