IntelliJ中单个Java测试用例无法执行,提示VM连接断开
针对你遇到的单个测试用例直接退出、调试时出现Disconnected from the target VM, address: '127.0.0.1:60245', transport: 'socket'错误的问题,结合代码和技术栈,排查方向如下:
Excel数据源异常
该用例依赖getDataFromDirectExcel提供的Scenario参数,若Excel中对应测试行的参数存在缺失(比如postBodyPDOP为空、api1-api4全为空),会直接触发后续逻辑提前退出或抛出异常。需检查Excel中该用例的所有参数是否完整、格式正确。提前退出逻辑触发
代码循环内判断api == null || StringUtils.isBlank(api)时直接return,若api1为空,整个测试方法会直接终止,表现为“未运行”。需确认Excel中该用例的api1-api4至少有一个非空值,或修改逻辑为跳过空API而非直接退出方法。FTL模板加载失败
加载PORTFOLIO_EDIT_BODY_PATH + bodyTemplate模板时,若路径拼接错误(如bodyTemplate为空、PORTFOLIO_EDIT_BODY_PATH路径无效),会导致未捕获的IO或模板解析异常,直接终止JVM进程。需检查模板路径配置,同时查看控制台是否有相关异常堆栈。Schema校验资源缺失
若expectedSchemaFile参数已配置,但schemaFilePath目录下无对应文件,SchemaValidator.checkSchema可能抛出未处理异常导致进程崩溃。需确认Schema文件路径和文件名正确,同时检查校验类是否捕获了异常。TestNG超时设置过小
测试方法设置了timeOut = Cons.TESTCASE_TIMEOUT,若该超时值远小于其他用例,且此用例的API调用、模板处理耗时较长,会触发超时终止进程。需对比其他用例的超时配置,适当调大该值。未捕获的RuntimeException
Disconnected from the target VM通常表示JVM进程意外终止,大概率是代码中存在未处理的空指针或其他运行时异常(比如scenario.getParam返回null后未处理)。建议关闭调试模式直接运行,查看控制台完整异常堆栈;或在IDEA中开启“捕获所有未处理异常”的断点,定位报错行。
内容的提问来源于stack exchange,提问作者Bubbles

