12

Mocha と Supertest を使用して Nodejs サーバーをテストしています。テスト スイートは 1500 以上のテストに成長しました。突然、テスト対象のコードはすべて引き続き機能しますが、テスト スイートは次のエラーで失敗します。

{ [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }

以前に実行されたいくつかのテストをコメントアウトすると、エラーの原因となったテストが変わります。この狂気の原因は何ですか?

4

1 に答える 1

8

Mike Gradek によるこのGoogle グループの投稿で答えを見つけました。

mocha と supertest を使用してこれらのリクエストを発行したところ、既存のバインディングを再利用するのではなく、リクエストごとに新しいポート バインディングを実際にスピンアップしていることに気付きました。

そのため、次のように記述されたコード:

var request = require('supertest');
var app = require('../app');
request(app).get(...);
request(app).get(...);

なりました

var request = require('supertest');
var app = require('../app');
var supertest = request(app);
supertest.get(...);
supertest.get(...);

これで問題は解決しました。

そして私にとっても。

于 2014-02-22T01:13:43.317 に答える