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

相关文章
相关标签/搜索