2016-09-23 8 views
0

avaテストランナーを使用するとエラーが発生します。コードの場合:avaテストランナーはEPIPEとECONNRESETエラーを書き込みます

test('gets account by ID with includes', async t => { 
    const c = new Client('http://localhost:8000/v2/', token); 
    const included = await c.account.get('2001', ['foo']).then(res => res.data.included); 

    t.is(included[0].type, 'Foo'); 
}); 

test('gets order item by ID', async t => { 
    const c = new Client('http://localhost:8000/v2/', token); 
    const orderItem = await c.orderItem.get('2000').then(res => res.data.data); 

    t.is(orderItem.type, 'OrderItem'); 
    t.is(orderItem.id, '2000'); 
}); 

私が取得:

1. get › gets account by ID with includes 
Error: connect ECONNRESET 127.0.0.1:8000 
Object.exports._errnoException (util.js:1036:11) 
exports._exceptionWithHostPort (util.js:1059:20) 
TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14) 


2. get › gets order item by ID 
Error: write EPIPE 
exports._errnoException (util.js:1036:11) 
WriteWrap.afterWrite (net.js:794:14) 

エラーはすべての時間を表示されないと、彼らは非常に低レベルのエラーですので、私はそれがsomesortのサーバ設定の問題でなければなりません疑います。おそらく私はテスト間に遅延を導入すべきでしょうか? Avaテストは多くのプロセスで生成され、同時に実行されます。

+0

テストを連続して実行し、エラーが持続するかどうかを確認してください。すべてのテストを並行して実行している可能性があります。 – yeiniel

+0

が動作します。あなたが解決策としてそれを書くなら、私はそれを解決させます。デベロッパーサーバーが並列テストを処理できない理由は何ですか? –

答えて

0

テストを連続して実行し、エラーが持続するかどうかを確認してください。すべてのテストを並行して実行している可能性があります。

通常、サーバーには同時接続は処理できますが、制限はあります。あなたがテストしている展開の限界に達しているようです。

実行している個別のテストの数を教えてください。この情報は、展開に重大な問題がある場合や、サーバーの境界に達している場合には、明らかになります。 Apacheのベンチマークのようなベンチマークツールを使用して、サーバーの展開機能に関する情報を得ることができます。

+0

私はdjango開発サーバーを使用しています。私のテストスイートはかなり大きくなっています。私はまた、クアッドコアマシン上にいる。だから、サーバーが4つの接続を同時に突っ込んでしまっているのであれば、私は驚かないだろう。 –

+0

Avaはデフォルトですべてのテストを並行して実行します。したがって、N個のテストをお持ちの場合、N個の同時接続がサーバーに生成される可能性があります。そのため、ベンチマークツールを使用して、Djangoサーバーが処理できる同時接続数を判断することが重要です。 – yeiniel

関連する問題