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

GitHub Actions中Cypress E2E测试无法读取环境变量的问题求助

问题原因分析

本地运行正常是因为你的系统环境里已经存在CYPRESS_UAM_BASE_URL、CYPRESS_UAM_BASIC_AUTH这些变量,Node进程启动时能直接读取到。但GitHub Actions的CI环境是全新的,这些变量默认不会自动出现在nx命令的运行环境中,导致Cypress配置里的process.env拿不到值。

优化解决方案

方案1:在GitHub Actions workflow中直接注入环境变量

在执行npx nx run的步骤里,通过env字段声明需要传递的变量,让Node进程能直接读取到这些变量:

- name: Run Cypress E2E Tests
  env:
    CYPRESS_UAM_BASE_URL: ${{ secrets.UAM_BASE_URL }} # 敏感变量用secrets,非敏感可直接写值或用workflow变量
    CYPRESS_UAM_BASIC_AUTH: ${{ secrets.UAM_BASIC_AUTH }}
  run: npx nx run ${{ inputs.repo_project_name }}:e2e

这种方式无需修改Cypress配置,和本地运行逻辑完全一致。

方案2:用.env文件统一管理变量

Cypress会自动加载项目根目录的.env文件,你可以在CI步骤中生成该文件并写入变量:

- name: Create .env file
  run: |
    echo "CYPRESS_UAM_BASE_URL=${{ secrets.UAM_BASE_URL }}" >> .env
    echo "CYPRESS_UAM_BASIC_AUTH=${{ secrets.UAM_BASIC_AUTH }}" >> .env
- name: Run Cypress E2E Tests
  run: npx nx run ${{ inputs.repo_project_name }}:e2e

同时可以简化Cypress配置,因为Cypress会自动把.env里带CYPRESS_前缀的变量加入到自身环境中:

// 简化后的Cypress e2e配置
e2e: {
  ...nxE2EPreset(__filename, { cypressDir: 'cypress' }),
  baseUrl: 'http://localhost:4201',
  pageLoadTimeout: 100000,
  env: {
    JDC_ALIAS: 'http://localhost:4201',
    // 可移除CYPRESS_开头的变量,Cypress会自动加载
  },
},

方案3:通过Nx的project.json配置注入变量

找到对应项目的project.json文件,在e2e目标的options里添加env占位符配置:

{
  "targets": {
    "e2e": {
      "executor": "@nx/cypress:cypress",
      "options": {
        "cypressConfig": "apps/your-project/cypress.config.ts",
        "devServerTarget": "your-project:serve",
        "env": {
          "CYPRESS_UAM_BASE_URL": "${UAM_BASE_URL}",
          "CYPRESS_UAM_BASIC_AUTH": "${UAM_BASIC_AUTH}"
        }
      }
    }
  }
}

然后在GitHub Actions步骤中传入对应环境变量,Nx会自动替换占位符:

- name: Run Cypress E2E Tests
  env:
    UAM_BASE_URL: ${{ secrets.UAM_BASE_URL }}
    UAM_BASIC_AUTH: ${{ secrets.UAM_BASIC_AUTH }}
  run: npx nx run ${{ inputs.repo_project_name }}:e2e

以上方案都比用--env传递大量变量更简洁,可根据变量的敏感程度和项目管理习惯选择合适的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:43:15