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

如何在执行cypress:open时设置NODE_ENV=test并验证环境变量

如何在Cypress运行时设置NODE_ENV并验证环境变量?

一、修改npm脚本,给Cypress设置NODE_ENV=test

你只需要在package.json的scripts里修改cypress:open命令,把环境变量前缀加上就行:

"scripts": {
  // 其他原有脚本保持不变
  "cypress:open": "NODE_ENV=test cypress open"
}

如果你的项目需要跨Windows和类Unix系统运行(比如团队里有人用Windows,有人用Mac/Linux),直接用NODE_ENV=test在Windows的cmd中会报错,这时候可以用cross-env包来统一环境变量的设置方式:

  1. 先安装cross-env依赖:
npm install cross-env --save-dev
  1. 修改脚本为跨平台兼容版本:
"scripts": {
  // 其他原有脚本保持不变
  "cypress:open": "cross-env NODE_ENV=test cypress open"
}

这样不管什么操作系统,都能正确把NODE_ENV=test传入Cypress进程。

二、验证Cypress是否接收到NODE_ENV环境变量

有几种简单的方式可以确认环境变量是否生效:

方法1:在Cypress配置文件中打印

找到你的cypress.config.js(旧版本可能是cypress.json,现在推荐使用JS配置文件),在文件顶部添加打印语句:

console.log('Cypress 进程的 NODE_ENV:', process.env.NODE_ENV);

module.exports = defineConfig({
  // 你的Cypress原有配置项
  e2e: {
    setupNodeEvents(on, config) {
      // 也可以在这里打印验证
      console.log('Setup Node Events 中的 NODE_ENV:', process.env.NODE_ENV);
    },
  },
});

当你运行npm run cypress:open时,启动Cypress的终端窗口里就会看到打印的环境变量值。

方法2:在测试文件中打印并在Cypress控制台查看

在任意一个测试spec文件里,添加一段前置代码:

before(() => {
  // 方式A:直接访问process.env(Cypress的Node环境中可用)
  console.log('测试文件中的 NODE_ENV(process.env):', process.env.NODE_ENV);
  // 方式B:通过Cypress.env()获取(若需在浏览器环境访问,需提前配置)
  console.log('测试文件中的 NODE_ENV(Cypress.env):', Cypress.env('NODE_ENV'));
});

运行测试后,打开Cypress Test Runner的开发者工具(按F12),在Console标签页就能看到这些日志内容。

另外要注意:你Node.js服务里的/api/testing路由仅在test环境加载,所以运行Cypress测试前,务必确保服务器也是在NODE_ENV=test环境下启动的——比如使用你已有的start:test脚本先启动服务,再运行npm run cypress:open,这样Cypress才能正常访问到测试路由。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:37:56