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

如何将HEROKU_APP_NAME从Heroku评审应用传递至CI应用

解决Heroku评审应用CI中Newman传递应用URL的问题

核心问题分析

你遇到的问题是Heroku CI环境中HEROKU_APP_NAME变量未被正确传递到测试脚本,或者变量使用方式有误(比如仅传递应用名称而非完整URL)。以下是几种可行的解决方案:

方案1:显式声明环境变量并构造完整URL

修改你的app.json,在test环境中显式声明需要使用的HEROKU_APP_NAME变量,并直接拼接生成完整的应用访问URL:

"environments": {
  "test": {
    "env": {
      "HEROKU_APP_NAME": {
        "required": true
      }
    },
    "scripts": {
      "test-setup": "npm install -g newman",
      "test": "newman run ./src/test/collection.json -e ./src/test/environment.json --env-var \"baseUrl=https://$HEROKU_APP_NAME.herokuapp.com\""
    }
  }
}
  • 新增env字段声明HEROKU_APP_NAME为必填变量,确保Heroku CI将其注入测试环境
  • 直接拼接https://和.herokuapp.com后缀,生成符合要求的完整应用URL

方案2:先验证变量可用性再执行测试

如果不确定变量是否正常注入,可以在测试脚本中先打印变量值,方便排查问题:

"test": "echo \"当前评审应用名称:$HEROKU_APP_NAME\" && newman run ./src/test/collection.json -e ./src/test/environment.json --env-var \"baseUrl=https://$HEROKU_APP_NAME.herokuapp.com\""

查看CI运行日志,若HEROKU_APP_NAME为空,需检查:

  • 评审应用是否已启用CI功能
  • Heroku账户是否具备传递环境变量的权限

方案3:通过Heroku CLI获取官方应用URL(备选)

如果构造URL的方式不生效,可以借助Heroku CLI获取官方返回的应用URL:

"scripts": {
  "test-setup": "npm install -g newman && npm install -g heroku",
  "test": "APP_URL=$(heroku apps:info -s -a $HEROKU_APP_NAME | grep web_url | cut -d'=' -f2) && newman run ./src/test/collection.json -e ./src/test/environment.json --env-var \"baseUrl=$APP_URL\""
}
  • 在test-setup中额外安装Heroku CLI
  • 通过heroku apps:info命令获取应用的官方URL,再传递给Newman

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:52:47