Web サーバーをテストするいくつかの単体テストがあるとします。ここで議論したくない理由により (範囲外 ;-))、すべてのテストには新しく起動したサーバーが必要です。
サーバーにリクエストを送信しない限り、すべて問題ありません。しかし、一度行うと、http サーバーのclose
関数への呼び出しが期待どおりに機能しません。作成されたすべての要求がキープアライブ接続になるため、サーバーは実際に閉じる前に 120 秒間待機します。
もちろん、これはテストの実行には受け入れられません。
現時点では、私が見る唯一の解決策は次のいずれかでした
- キープアライブ タイムアウトを に設定する
0
と、 を呼び出すclose
と実際にサーバーが閉じられます。 - または、各サーバーを異なるポートで起動しますが、多くのテストがある場合、これは扱いにくくなります。
この状況に対処する方法の他のアイデアはありますか?
PS: Node.js http(s) サーバーをすぐにシャットダウンするにはどうすればよいですか? 少し前にそれを回避する実行可能な方法を見つけましたが、時々奇妙な結果が得られるため、この回避策は常に確実に実行されるとは限りません.