5

統合テストを実行するために 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

これは私を困惑させます、どんな洞察もいただければ幸いです!

4

0 に答える 0