java-未选择Spring Boot测试配置
作者:互联网
我正在为我的应用程序编写集成测试,并且想对测试使用自定义webmvc配置
我的基本包com.marco.nutri中有三个类:
>应用程序(由@SpringBootApplication注释)
> MvcConfig(@Configuration和@EnableWebMVC)
> SecurityConfig(@Configuration和@EnableWebSecurity)
我的测试在br.com.marco.nutri.integration.auth包中:
@RunWith(SpringRunner.class)
@SpringBootTest(classes={Application.class, WebMvcTestConfiguration.class, SecurityConfig.class})
public class ITSignup {
//Test code
}
我在com.marco.nutri.integration包中有一个测试配置类:
@TestConfiguration
@EnableWebMvc
public class WebMvcTestConfiguration extends WebMvcConfigurerAdapter {
//Some configuration
}
但是,当我运行测试时,将选择MvcConfig.class而不是WebMvcTestConfiguration.class
我究竟做错了什么?
解决方法:
您可以使用@Profile(“ test”)注释测试配置,并使用@Profile(“ production”)注释您的真实配置
并在属性文件中添加属性spring.profiles.active = production,并在测试类中添加@Profile(“ test”).因此,当您的应用程序启动时,它将使用“生产”类,而在测试星级时,它将使用“测试”类.
从文档
Unlike regular @Configuration classes the use of @TestConfiguration
does not prevent auto-detection of @SpringBootConfiguration.Unlike a nested @Configuration class which would be used instead of a
your application’s primary configuration, a nested @TestConfiguration
class will be used in addition to your application’s primary
configuration.
标签:spring-boot,spring-test,spring,java 来源: https://codeday.me/bug/20191026/1938364.html