You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress UI模式运行脚本失败 升级版本时触发npm安装报错

问题汇总
  • 运行态差异问题:测试脚本在headless(无头)模式下可正常执行,通过Cypress UI启动运行时直接失败,抛出Node.js内部错误,错误堆栈如下:
From Node.js Internals:Error: socket hang up
at connResetException (node:internal/errors:690:15)
at Socket.socketOnEnd (node:_http_client:471:24)
at Socket.emit (node:events:406:36)
at endReadableNT (node:internal/streams/readable:1331:13)
at processTicksAndRejections (node:internal/process/task_queues:83:22)
  • 版本升级报错:尝试将Cypress从9.4.1升级至10.1.0修复上述运行问题时,安装流程失败,执行安装命令返回如下错误:
PS C:\Users\hshah\cypress> npm install --save-dev cypress@10.0.3
npm ERR! must provide string spec
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\hshah\AppData\Local\npm-cache_logs\2022-06-20T05_10_05_825Z-debug.log
PS C:\Users\hshah\cypress>

当前无法定位问题产生的根本原因。

修复方案

针对Cypress UI模式socket hang up报错

该错误本质是Cypress UI启动的本地代理服务与测试浏览器的通信连接被意外中断,无头模式不需要加载UI层交互代理,因此不会触发该问题,按优先级排查修复:

  • 拦截类软件干扰:本地防火墙、杀毒软件、全局网络代理工具会拦截Cypress使用的本地环回端口通信,将Cypress二进制运行目录、项目node_modules下的cypress目录加入安全软件白名单,临时关闭全局代理后重试即可。
  • Node版本不兼容:Cypress 9.x系列对Node.js 17+的OpenSSL、HTTP2实现存在已知兼容问题,UI模式下会触发连接重置,将Node.js切换至16.x LTS版本即可匹配Cypress 9.x的官方兼容要求。
  • 配置项错误:检查旧版本cypress.json中的baseUrl、proxyServer配置项,若存在非法格式的地址、错误的端口号,UI模式加载配置时会直接中断通信连接,修正配置后重启Cypress即可。

针对Cypress升级时must provide string spec报错

该报错为npm依赖解析逻辑异常,和Cypress包本身无关,按以下步骤处理:

  1. 执行npm cache clean --force清理本地损坏的npm缓存
  2. 若当前npm版本低于8.3,执行npm install -g npm@lts升级npm到长期支持版本
  3. 删除项目根目录下的node_modules文件夹与package-lock.json文件
  4. 重新执行npm install --save-dev cypress@10.0.3完成安装
    注意:Cypress 10.x存在配置文件破坏性变更,安装完成后首次执行npx cypress open时会触发自动配置迁移流程,需确认将旧版cypress.json的配置迁移到新版cypress.config.js中,否则启动后会出现配置不兼容报错。

内容的提问来源于stack exchange,提问作者Heeren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:03:24