@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