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

Cypress运行测试报process is not defined错误如何解决

Cypress 报错 process is not defined 解决方案

报错原因

process 是Node.js环境专属的全局对象,Cypress的测试逻辑运行在浏览器侧,默认没有注入该全局对象。当你的测试代码、引入的第三方依赖、或者被测前端应用代码中存在process.xxx的调用逻辑时,就会触发该报错。
你当前贴出的index.js中没有直接调用process的逻辑,可按照以下场景排查修复:

修复方案

场景1:被测前端应用代码使用了process

前端项目正常构建时会自动将process.env.xxx这类环境变量替换为静态值,如果Cypress访问的是未构建的源码、或者构建配置缺失环境变量替换逻辑,可以直接在Cypress支持文件(即你当前的index.js)最顶部手动挂载全局process对象:

// 写在所有导入语句的最前面
window.process = {
  env: {
    // 这里填入前端应用实际用到的环境变量即可,无特殊需求可默认写以下配置
    NODE_ENV: 'development'
  }
}

// 原有代码保持不变
import './commands'

Cypress.on('uncaught:exception', (err, runnable) => {
  return false
})

场景2:测试代码/测试依赖使用了process

  • 检查你的测试用例文件、commands.js文件中是否存在直接调用process.xxx的逻辑,将对应逻辑替换为Cypress官方提供的环境变量读取方法Cypress.env()即可,例如将process.env.TEST_TOKEN修改为Cypress.env('TEST_TOKEN')
  • cypress.config.js运行在Node环境,该文件中可以正常使用process,不需要修改

临时验证方案(不推荐长期使用)

如果需要临时验证问题是否和process相关,可以直接在报错的测试用例顶部添加以下代码:

window.process = window.process || { env: {} }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:15:03