@SuiteClasses({ TestModelServiceTest.class, TestModelServiceTest2.class }) @RunWith(Suite.class) public class SystemControllerSuiteTest { }
TestModelServiceTest 配置的是java
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
而TestModelServiceTest2 配置的是web
@SpringBootTest
两个类的环境不一致,会形成重复启动spring
解决办法:单元测试
一、必须保证每一个测试类的配置环境一致,好比使用下面统一的测试注解:测试
@RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @EnableAutoConfiguration @AutoConfigureMockMvc
二、而且单元测试类要在Application.class的子包下ui
三、在spring的测试策略中,若是有mock存在,也就是使用了@MockBean等相关注解,单元测试类每次都会从新加载上下文code