統合テストを実行するために Heroku-CI をセットアップしています。私の目標は次のとおりです。
- 各テストの前にデータベースにシード データを入力する
- アプリへの API 呼び出しを行い、結果を確認する
データベースに接続する方法やテスト スイートから API 呼び出しを行う方法を説明しているソースをインターネット上で見つけるのに苦労しています。
公式ドキュメントで説明されているように、アドオンapp.json
をプロビジョニングするようにセットアップしました: https://devcenter.heroku.com/articles/heroku-ci#provisioning-add-ons-the-addons-key-exampleheroku-postgresql:in-dyno
{
"environments": {
"test": {
"addons": [
"heroku-postgresql:in-dyno"
]
}
},
"addons": [
"heroku-postgresql"
],
}
したがってDATABASE_URL
、ドキュメントで説明されているように環境変数が定義されることを期待しています: 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
これは私を困惑させます、どんな洞察もいただければ幸いです!