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

如何在Cypress测试脚本中访问Drone CI配置的环境变量

解决Drone Secrets在Cypress测试中无法访问的问题

先说明echo显示****的原因

这是Drone的默认安全行为,会自动屏蔽敏感环境变量的输出,说明你的密钥已经成功注入到构建环境中,无需担心。

正确的配置与访问方式

1. 修改Drone的production.yml配置

Cypress的浏览器进程不会直接继承系统环境变量,需要在启动时显式传递。修改commands部分:

commands:
  # 替换原echo命令,启动Cypress并传递密钥变量
  - npx cypress run --env CYPRESS_CLIENT_KEY_PROD=$CYPRESS_CLIENT_KEY_PROD,CYPRESS_CLIENT_KEY_STAG=$CYPRESS_CLIENT_KEY_STAG

如果项目package.json中有测试脚本(比如"test": "cypress run"),也可以写成:

commands:
  - npm run test -- --env CYPRESS_CLIENT_KEY_PROD=$CYPRESS_CLIENT_KEY_PROD,CYPRESS_CLIENT_KEY_STAG=$CYPRESS_CLIENT_KEY_STAG

2. 测试文件中正确获取密钥

在Cypress测试代码(.spec.js文件)里,使用Cypress.env()方法传入变量名获取:

export function xClientKey() {
  return Cypress.env('CYPRESS_CLIENT_KEY_PROD');
};

如果是在Node环境文件(比如cypress.config.js、插件文件)中,则可以用process.env.CYPRESS_CLIENT_KEY_PROD。

3. 额外注意事项

  • 确认Drone中配置的密钥已授权给当前仓库使用(仓库设置的Secrets选项卡可查看)
  • 不要在测试代码中打印密钥值,既存在泄露风险,也会被Drone自动屏蔽
  • Cypress 10+版本中,Cypress.env()是测试代码获取环境变量的标准方式,不推荐使用点语法Cypress.env.CYPRESS_CLIENT_KEY_PROD

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:12:19