Запуск весеннего пакетного теста, не инициализирует базу данных - PullRequest
0 голосов
/ 08 мая 2019

Попытка создать несколько сквозных тестов для весеннего пакетного приложения, которое прекрасно работает.Я получаю сообщение об ошибке 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.

Я не понимаю, почему в основном приложении все работает автоматически, а в тесте - нет.

...