Spring Boot properties in 'application.yml' not loading from JUnit Test

前端 未结 10 505
野趣味
野趣味 2021-01-31 13:59

What am I doing wrong? I\'m using this little standalone App which runs and finds my src/main/resources/config/application.yml. The same configuration doesn\'t work

10条回答
  •  情歌与酒
    2021-01-31 14:40

    The trick to load any custom yml file in SpringBoot 2.0 w/o using @SpringBootTest

    • create some yml file in test\resources
    • Use ConfigFileApplicationContextInitializer and spring.config.location property

    Example Code:

    @RunWith(SpringRunner.class)
    @ContextConfiguration(
        classes = { MyConfiguration.class, AnotherDependancy.class },
        initializers = {ConfigFileApplicationContextInitializer.class} )
    @TestPropertySource(properties = { "spring.config.location=classpath:myApp-test.yml" })
    public class ConfigProviderTest {
        @Autowired
        private MyConfiguration myConfiguration; //this will be filled with myApp-test.yml 
    
       @Value("${my.config-yml-string}")
       private String someSrting; //will get value from the yml file.
    
    }
    

    For JUnit 5 use the @ExtendWith(SpringExtension.class) annotation instead of @RunWith(SpringRunner.class)

提交回复
热议问题