делать настройку из application.yml при запуске модульного теста - PullRequest
0 голосов
/ 21 января 2019

Я запускаю приложение из весенней загрузки и читаю юнит-тест для проверки сервисов методом. но получаю эту ошибку, что пролетный путь не существует, каталог конфигурации, хотя я определил конфигурацию пролетного пути в ресурсах> application.yml.

spring:
 flyway:
   baseline-version: 0
   baseline-description: descript this
   encoding: UTF-8
   table: flyway
   locations: **classpath:/db/postgres/migrations**
   schemas:  SCHEMA
   password: PASSWORD
   user: jeus

но я получаю это ошибка :

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flyway' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.flywaydb.core.Flyway]: Factory method 'flyway' threw exception; nested exception is java.lang.IllegalStateException: Cannot find migrations location in: [classpath:db/migration] (please add migrations or check your Flyway configuration)

в тестовом классе я установил эту конфигурацию для загрузки конфигурации и контекста весенней загрузки.

@RunWith(SpringRunner.class)
@ComponentScan
@ContextConfiguration(classes = {BeanFactory4Test.class})
public class ClientManagerTest {

   @Autowired
   private ClientManager clientManager;

   @Test
   public void getAccessTokenTest() {
      ......
   }
}

и BeanFactoryForTest

@Configuration
@ComponentScan(basePackages = {"com.b2mark"}) 
public class BeanFactory4Test {
    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource driver = new DriverManagerDataSource();
        driver.setDriverClassName("org.postgresql.Driver");
        driver.setUrl("jdbc:postgresql://postgres:5432/jeus");
        driver.setUsername("JEUS");
        driver.setPassword("PASSWORD");
        driver.setSchema("SCHEMA");
        return driver;
    }
}
...