Spring 启动 MockMVC 测试不加载 Yaml 文件
Spring Boot MockMVC Test does not load Yaml file
我在 class 路径 (src/main/resources/) 根目录下的 application.yml 文件中有我的配置。当我正常启动应用程序时,配置加载正常。但是在我的测试中 application.yml 文件根本没有加载。
我的测试 header 如下所示:
@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();
}
...
配置class:
@EnableAutoConfiguration
@ComponentScan("c.e.t.s.web, c.e.t.s.service")
public class Configuration extends WebMvcConfigurerAdapter {
当我调试应用程序时,我看到 yml 文件被加载到 ConfigFileApplicationListener 中,但是在测试中 ConfigFileApplicationListener 没有被调用。
whole chapter in the Spring Boot Reference guide regarding testing. This section 解释了如何对 Spring 启动应用程序进行基本测试。
简而言之,当使用 Spring 引导并且您想要进行测试时,您需要使用 @ SpringApplicationConfiguration
注释而不是 @ContextConfiguration
注释。 @SpringApplicationConfiguration
是一个专门的 @ContextConfiguration
扩展,它 registers/bootstraps 一些 Spring 用于测试用例的启动魔法。
StringBoot、jUnit 和 YAML 之间有很好的集成。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(MainBootApplication.class)
public class MyJUnitTests {
...
}
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "section1")
public class BeanWithPropertiesFromYML {
...
}
有关详细信息,请在此处查看我的评论:
我在 class 路径 (src/main/resources/) 根目录下的 application.yml 文件中有我的配置。当我正常启动应用程序时,配置加载正常。但是在我的测试中 application.yml 文件根本没有加载。
我的测试 header 如下所示:
@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();
}
...
配置class:
@EnableAutoConfiguration
@ComponentScan("c.e.t.s.web, c.e.t.s.service")
public class Configuration extends WebMvcConfigurerAdapter {
当我调试应用程序时,我看到 yml 文件被加载到 ConfigFileApplicationListener 中,但是在测试中 ConfigFileApplicationListener 没有被调用。
whole chapter in the Spring Boot Reference guide regarding testing. This section 解释了如何对 Spring 启动应用程序进行基本测试。
简而言之,当使用 Spring 引导并且您想要进行测试时,您需要使用 @ SpringApplicationConfiguration
注释而不是 @ContextConfiguration
注释。 @SpringApplicationConfiguration
是一个专门的 @ContextConfiguration
扩展,它 registers/bootstraps 一些 Spring 用于测试用例的启动魔法。
StringBoot、jUnit 和 YAML 之间有很好的集成。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(MainBootApplication.class)
public class MyJUnitTests {
...
}
@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "section1")
public class BeanWithPropertiesFromYML {
...
}
有关详细信息,请在此处查看我的评论: