我正在设置 Heroku-CI 来运行集成测试。我的目标是:
- 在每次测试之前用种子数据填充数据库
- 对应用程序进行 API 调用并检查结果
我很难在互联网上找到任何解释如何连接到数据库/从测试套件进行 API 调用的资源。
正如官方文档中解释的那样,我设置了我app.json
的配置heroku-postgresql:in-dyno
插件:https ://devcenter.heroku.com/articles/heroku-ci#provisioning-add-ons-the-addons-key-example
{
"environments": {
"test": {
"addons": [
"heroku-postgresql:in-dyno"
]
}
},
"addons": [
"heroku-postgresql"
],
}
所以我期望DATABASE_URL
env 变量按照文档中的解释进行定义: https ://devcenter.heroku.com/articles/heroku-ci-in-dyno-databases#usage
我倾倒process.env
并得到(为清楚起见过滤掉):
CI_NODE_INDEX=0
SHLVL=2
PORT=13825
WEB_CONCURRENCY=5
CI_NODE_TOTAL=1
HEROKU_TEST_RUN_COMMIT_VERSION=9d21e06632878c2d23fb4e8f51017d5e87628ac7
STACK=heroku-18
HEROKU_TEST_RUN_ID=e5e28b13-efbe-4ef0-bc50-ed3a041bca04
HEROKU_TEST_RUN_NUMBER=27
NODE_ENV=test
JEST_WORKER_ID=1
DATABASE_URL
没有定义。我应该如何连接到数据库并用种子数据填充它?
我没有指定DATABASE_URL
任何地方,app.json
但我认为我不应该指定,就像评论应用程序一样。
我还尝试使用PORT
env 变量对我的服务器进行 API 调用:http://localhost:${process.env.PORT}/graphql
但是得到了connect ECONNREFUSED 127.0.0.1:13825
这让我感到困惑,任何见解将不胜感激!