Spring Boot MockMVC Test不加载Yaml文件

leo*_*leo 6 spring spring-test spring-boot mockmvc

我在classpath(src/main/resources /)的根目录下的application.yml文件中进行了配置.正常启动应用程序时,配置会正常加载.但是在我的测试中,application.yml文件根本没有被加载.

我的测试标题如下:

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = Configuration.class)
@org.junit.Ignore
public class ApplicationIntegrationTest {

   @Inject
   private WebApplicationContext wac;

   private MockMvc mockMvc;

   @Before
   public void setup() {
       this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
   }
...
Run Code Online (Sandbox Code Playgroud)

配置类:

@EnableAutoConfiguration
@ComponentScan("c.e.t.s.web, c.e.t.s.service")
public class Configuration extends WebMvcConfigurerAdapter {
Run Code Online (Sandbox Code Playgroud)

当我调试应用程序时,我看到yml文件在ConfigFileApplicationListener中被加载,但在测试中却没有调用ConfigFileApplicationListener.

M. *_*num 7

Spring Boot Reference指南中有一整章关于测试.本节介绍如何对Spring Boot应用程序进行基本测试.

简而言之,在使用Spring Boot并且您想要进行测试时,您需要使用@ SpringApplicationConfiguration注释而不是@ContextConfiguration注释.这@SpringApplicationConfiguration是一个专门的@ContextConfiguration扩展,它可以为测试用例注册/引导一些Spring Boot魔术.