项目引入websocket后发现测试报错,出现下面的错误,查找后特此记录下:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [com/xx/xx/xx/xx/xxx/xxx.class]:
Invocation of init method failed; nested exception is java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
默认情况下,@SpringBootTest不会启动服务器。您可以使用webEnvironment 属性@SpringBootTest来进一步优化测试的运行方式:
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
修改之后:
/**
* 单元测试
* 如果该项目引用了websocket,要用以下两种方式处理下
* 1.以web应用程序启动;2.排除websocket类或者包;
* 这里用了第一种方式
*/
@RunWith(SpringRunner.class)
@ActiveProfiles("dev")//指定属性文件
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class TestController {
@Test
public void test(){
System.out.println("TestController.test=========================");
}
}