编程语言
首页 > 编程语言> > java-未选择Spring Boot测试配置

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