vscode点“run”没反应,主因是插件默认调用全局cypress而非项目npx cypress;需将cypress.runcommand设为npx cypress open/run,确认node版本≥18.12(cypress@13+),cypress.configfile路径正确且cypress.config.js须用commonjs导出。

VSCode里点“Run”没反应,根本不是插件坏了
90% 的问题出在 VSCode 插件(比如 Cypress Test Explorer)默认调用的是全局 cypress 命令,而你的项目根本没装全局版——它只在 devDependencies 里,靠 npx cypress 才能定位到 node_modules/.bin/cypress。
验证方法很简单:在 VSCode 集成终端里执行 npx cypress open。能打开 GUI → 说明项目依赖正常;打不开 → 检查 package.json 是否有 "cypress",且已运行过 npm install。
- 进 VSCode 设置(
Cmd+,/Ctrl+,),搜cypress.runCommand,改成npx cypress open或npx cypress run - 别去全局安装
cypress:容易和项目版本冲突,尤其cypress@13+遇上 Node.js ERR_OSSL_EVP_UNSUPPORTED - 改完后重启 VSCode 终端,避免继承旧 PATH
cypress.config.js 路径和导出语法错一个,测试列表就是空的
Cypress Test Explorer 不是“扫描配置文件”,而是严格按三要素匹配:路径、文件名、导出语法。三者缺一不可,错一个就看不到任何测试用例。
- 插件默认只认工作区根目录下的
cypress.config.js或cypress.json;cypress.config.ts不会被自动发现 - 如果配置在
tests/e2e/cypress.config.ts,必须在.vscode/settings.json里显式声明:"cypress.configFile": "tests/e2e/cypress.config.ts"(路径相对于工作区根) -
cypress.config.js必须用 CommonJS:module.exports = { ... };写成export default { ... }在多数插件版本中静默失败 - 若
e2e.setupNodeEvents里用了async函数或顶层await,某些插件版本会卡住加载——调试时先注释掉验证
debugger 断点不生效?你连的不是 Electron 进程
Cypress 运行在 Electron 渲染进程里,不是普通 Node.js 进程。VSCode 的 launch.json 配 type: "node" 是无效的,debugger 语句不会触发。
- 必须点击插件里的 “Debug” 按钮(小虫图标),它会自动执行
npx cypress open --browser electron并建立调试通道 - 手动方式:终端执行
npx cypress open --browser electron,再在 GUI 中选测试,此时 Chrome DevTools 和 VSCode 才能同步断点 - 不要在
support/e2e.js或测试文件里加debugger后就干等——没走 Electron 通道,它永远不响
组件测试看不到 Component Testing 标签页?配置漏了关键项
Cypress ≥ v10.0.0 才支持组件测试,但默认只启用 E2E 模式。标签页不出现,基本是配置缺失或版本不匹配。
- 执行
npx cypress --version,确认 ≥ 10.0.0;低于这个版本压根不识别component配置 -
cypress.config.js必须包含component: { enabled: true },且不能漏掉setupNodeEvents(哪怕空函数也要写) - 组件测试文件得放在
cypress/components/下(不是integration/),后缀为.spec.tsx或.spec.jsx - 白屏 + 报
Cannot find module '@cypress/react'?说明框架适配器没装或没注册,比如@cypress/react必须在support/component-index.js里import '@cypress/react'
最常被忽略的其实是 Node.js 版本兼容性:Cypress v13+ 强制要求 ≥ 18.12.0,但 VSCode 终端可能还挂着旧 nvm 版本——别只看终端里 node -v 输出,要确认它和 npx 实际调用的是同一个 Node 实例。











