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

在Heroku CI中访问配置变量的问题求助

解决Heroku CI无法读取应用已配置环境变量的问题

问题根源

Heroku CI的测试环境不会自动继承主应用的Config Vars,哪怕你已经在主应用中设置了ENVIRONMENT等变量,测试环境依然无法直接读取到。你之前在app.json顶级添加的env配置块是用于应用初始化阶段(比如通过"Deploy to Heroku"按钮创建应用)的必填变量要求,和CI测试环境无关,这才导致了"Config var is required"的报错。

解决方案

不需要在app.json中写入明文变量值,只需给CI测试环境单独配置对应的Config Vars,同时调整app.json的测试环境配置即可:

1. 移除app.json中的顶级env配置

先把之前添加的这段配置删掉,避免初始化冲突:

"env": {
  "ENVIRONMENT": {
    "required": true
  },
},

2. 给CI测试环境配置Config Vars

有两种方式可以给测试环境添加变量:

  • CLI命令方式:
    直接通过Heroku CLI给测试环境设置变量(替换your_value为实际值,my-heroku-app-name为你的应用名):
    heroku config:set ENVIRONMENT=your_value --app my-heroku-app-name --env test
    
  • Dashboard方式:
    登录Heroku Dashboard,进入你的应用 → 切换到「Tests」标签页 → 找到「Config Vars」区域,点击「Reveal Config Vars」添加所需变量。

3. (可选)在测试环境配置中明确引用变量

修改app.json的environments.test部分,添加env配置块来明确引用测试环境的变量,确保CI能正确读取:

{
  "name": "my-heroku-app-name",
  "repository": "https://github.com/myorg/myrepo",
  "environments": {
    "test": {
      "scripts": {
        "test-setup": "pip install -r requirements.txt",
        "test": "pytest tests"
      },
      "env": {
        "ENVIRONMENT": "${ENVIRONMENT}"
      }
    }
  }
}

这里的${ENVIRONMENT}会自动从测试环境的Config Vars中取值,无需明文暴露敏感信息。

完成以上步骤后,重新触发Heroku CI测试,就能正常读取到环境变量,解决断言失败的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:55:01