Spring错误——Junit测试——java.net.BindException: Address already in use: bind
背景
- 项目目录结构如下
-
- 其中application-dev.yml为开发环境,application-prod.yml为生产环境,application-test.yml为测试环境
- 每个环境使用的数据库不同,测试时使用test环境进行单元测试。
- 开发项目使用Junit批量进行单元测试时,报错:java.net.BindException: Address already in use: bind,如下
原因
- 两个测试类使用的环境不同,一个使用的是dev环境测试,一个使用的是test环境测试,代码如下
- ElecInvalidOrderTest测试类
-
/** * @author jingguoliang * @Description: 失效电费订单 * @date 2020/4/14 */ @RunWith(SpringRunner.class) @SpringBootTest @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_UNCOMMITTED) @ActiveProfiles(value = "dev") public class ElecInvalidOrderTest { private static final Logger logger = LoggerFactory.getLogger( ElecInvalidOrderTest.class ); @Before public void setUp() throws Exception { initializeDbData();//初始化数据 } public void initializeDbData() throws SQLException, IOException { } @After public void tearDown() throws Exception { } //失效电费订单1 @Test public void orderSuperviser1() { //调用业务服务 logger.info("BizType.elecorder_invalid is start"); }
-
- ElecWillInvalidOrderTest测试类
-
/** * @author jingguoliang * @Description: 即将即将失效电费订单 * @date 2020/4/14 */ @RunWith(SpringRunner.class) @SpringBootTest @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_UNCOMMITTED) @ActiveProfiles(value = "test") public class ElecWillInvalidOrderTest { private static final Logger logger = LoggerFactory.getLogger( ElecWillInvalidOrderTest.class ); @Before public void setUp() throws Exception { initializeDbData();//初始化数据 } public void initializeDbData() throws SQLException, IOException { } @After public void tearDown() throws Exception { } //即将即将失效电费订单1 @Test public void orderSuperviser1() { //调用业务服务 logger.info("BizType.elecorder_will_invalid is start"); }
-
- ElecInvalidOrderTest测试类
- 每一个环境在测试开始时都会使用启用一个Adress,所以会出现地址已经占用的问题
解决办法
- 如果批量测试,只能把测试环境进行统一,都改成dev或者test
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」