分度器 (または他の Selenium テスト) のような e2e テストを開発サーバーで実行したいと考えています。テスト時間のために別のテストデータベースに切り替えることは可能ですか? 各テストを実行する前にフィクスチャをロードしています。データベースのセットアップに関して、バックエンドに node.js と mongo.db を使用して、この種のテストの良い方法は何ですか?
前もって感謝します。
分度器 (または他の Selenium テスト) のような e2e テストを開発サーバーで実行したいと考えています。テスト時間のために別のテストデータベースに切り替えることは可能ですか? 各テストを実行する前にフィクスチャをロードしています。データベースのセットアップに関して、バックエンドに node.js と mongo.db を使用して、この種のテストの良い方法は何ですか?
前もって感謝します。
これを行う最も簡単な方法は、アプリケーションの別のインスタンスを異なる構成でスピンアップすることです。つまり、別のデータベースに接続し、別のポートでリッスンします。次に、Selenium をその場所に向けることができます。理論的には、アプリケーションの FE はポートに依存しない必要がありますが、問題が発生した場合は、nginx が非常に役立ちます。
ポート 3333 とドメイン test.myapp でそれが必要だと考えてみましょう。nginx のサンプル構成ファイルを次に示します。
server {
listen 80;
server_name test.myapp;
location / {
proxy_pass http://localhost:3333;
proxy_set_header Host $host;
proxy_buffering off;
}
}
もちろん、現在の開発サーバー用に別のサーバーを定義したいと考えています。すすいで繰り返すだけです。
通常、nodejs アプリケーションの構成は、環境変数 NODE_ENV の値に基づいて選択されます。アプリを実行するときに、次のように渡すことができます (ここでは Linux サーバーであると想定しています)。
$ NODE_ENV=test node app.js
次に、アプリケーション内で簡単にアクセスできます。
var env = process.env.NODE_ENV
お役に立てば幸いです。
Mocha は、別のデータベースを指すために使用できる --config ファイルを受け入れることができるようになりました。私は同じデータベース サーバーを使用しています。サーバーは複数のデータベースを持つことができます。これにより、開発者にとって非常にシンプルで軽量になります。