小编典典

无法从JUnit Test加载'application.yml'中的Spring Boot属性

spring-boot

我究竟做错了什么?我正在使用这个运行并找到我的小独立应用程序src/main/resources/config/application.yml。无法从JUnit使用相同的配置,请参见下文:

@Configuration
@ComponentScan
@EnableConfigurationProperties

public class TestApplication {

    public static void main(String[] args) {

        SpringApplication.run(TestApplication.class);
    }
}


@Component
@ConfigurationProperties

public class Bean{
    ...
}

以下内容无效,其中的相同属性application.yml未加载,Bean仅具有null值:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = TestApplication.class)

public class SomeTestClass {
    ...
}

阅读 1341

收藏
2020-05-30

共1个答案

小编典典

尝试这个:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestApplication.class, 
    initializers = ConfigFileApplicationContextInitializer.class)
public class SomeTestClass {
    ...
}

编辑

对于Spring
Boot版本1.5+,SpringApplicationConfiguration已删除它以支持SpringBootTest或直接使用SpringBootContextLoader

您仍然可以将initializers参数与ContextConfiguration注释一起使用。

2020-05-30