vscode不运行cypress,仅调用系统cypress cli;若“run”无反应或报command not found,主因是未全局安装或插件未匹配npx路径,需检查which/where cypress、配置cypress.runcommand为npx命令、确认node版本兼容性及cypress.configfile路径正确性。

VSCode 本身不运行 Cypress,它只是调用你系统里装好的 cypress CLI;如果点“Run”没反应、终端报 command not found: cypress,问题基本就出在这儿。
确认 cypress 是全局可执行的
VSCode 插件(比如 Cypress Test Explorer)默认找的是全局安装的 cypress,不是项目里的 npx cypress。先在 VSCode 集成终端里运行:
npx cypress open
能打开 GUI,说明项目依赖正常;但插件仍可能不工作,因为路径不匹配。
- 运行
which cypress(macOS/Linux)或where cypress(Windows),看有没有输出——没有就说明没全局安装 - 不推荐
npm install -g cypress:容易和项目版本冲突,尤其跨大版本(如 v12 vs v13)时引发ERR_OSSL_EVP_UNSUPPORTED - 更稳妥的做法:在 VSCode 设置里搜
cypress.runCommand,改成npx cypress run或npx cypress open - 同时检查 Node.js 版本:
cypress@12+要求 ≥16.14,cypress@13+要求 ≥18.12,错配会直接启动失败
让 Cypress Test Explorer 找到配置文件
这个插件不是靠“有没有配置文件”工作的,而是靠它能不能在工作区根目录下找到合法入口。找不到,测试项根本不加载。
- 插件默认只认
cypress.json或cypress.config.js(注意:不是.ts),且必须在工作区根目录 - 如果你的配置在
tests/e2e/cypress.config.ts,得在 VSCode 工作区设置里加:"cypress.configFile": "tests/e2e/cypress.config.ts"(路径是相对于工作区根的) -
cypress.config.js必须用 CommonJS 导出:module.exports = {...};ESM 写法(export default {...})在旧版插件里会静默失败 - 配置里
e2e.setupNodeEvents如果用了async函数或顶层await,某些插件版本会卡住——调试时先注释掉验证是否是它导致测试列表为空
调试断点为什么停不住
单纯在测试代码里写 debugger 是没用的,Cypress 运行在 Electron 环境里,VSCode 调试器必须连上专用通道。
- 必须通过插件的 “Debug” 按钮(小虫图标)启动,而不是 “Run” 按钮
- 或者手动在终端执行:
npx cypress open --browser electron,再选测试——这样 Chrome DevTools 才会和 VSCode 同步 - 别指望
launch.json里配个node类型就能调试:Cypress 不是普通 Node 进程,它需要 Electron runtime 支持 - 如果用了自定义环境变量(如代理、
NODE_OPTIONS),它们不会被 Electron 继承,得在cypress.config.js的env字段里显式传入
最常被忽略的一点:Cypress Test Explorer 插件本身不提供可视化测试面板,它只是个“快捷入口”。真正带用例树、截图、重试、时间旅行的 UI,是 cypress open 启动的独立桌面应用。别花时间找“测试侧边栏”,先确保命令能跑起来再说。











