spring boot 單元測試 打包測試 SuiteClasses 屢次啓動的問題

@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

相關文章
相關標籤/搜索