私はプロセスをテストし、EPIPEエラーに対して弾力性があることを確認したい。私たちはProdでそれらを見ているので、いくつかのロギングを見逃すこと以外に問題はないようだ。ENOENTやEPIPEのようなシステムエラーを投げる方法はありますか?
Error: write EPIPE
at errnoException (net.js:770:11)
もthrow new Error({code: 'EPIPE', errno: -3})
などを試してみましたが、それはちょうど同じように見えるしません:。EPIPEエラーがどのように見える、しかし同じように見ていない
if (process.env.TESTFAIL != null) {
setTimeout(function() {
throw new Error('EPIPE');
}, 1000);
}
nodejs objectsからコード/メッセージを取得してシステムエラーをスローする方法はありますか?
"一般的に、基本的な状況を作成する必要があります。 EPIPEのためにそれを行う方法のアイデアを得ましたか?それは青色から出現する可能性が最も高いと思われるもの(ログなどに書いている間)です。 – jcollum
確か。パイプを外部プロセスに開始し、データがまだ転送されている間に、外部プロセスをシグナル(例えば 'SIGINT'または' SIGKILL')で終了します。ほとんどの単体テストと比較して調整するのは醜い/複雑なことであり、おそらく統合テストの見出しに該当します。しかし、そうすることは、 'EPIPE'処理をテストする上で必要かつ十分です。 UNIXの 'yes'(無限のシーケンスを出す)のようなユーティリティプログラムは、そのようなテストのための有用な外部関数となり得る。 –