我正在使用Mocha和Supertest测试Nodejs服务器。测试套件已发展到超过1500个测试。突然之间,尽管所有受测试的代码仍然有效,但我的测试套件失败并出现此错误:
{ [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }
如果我注释掉之前运行的某些测试,导致错误的测试会发生变化。 造成这种疯狂的原因是什么?
答案 0 :(得分:3)
我在Mike Rankk的Google Groups post中找到了答案:
我们使用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(...);
这解决了我们的问题。
对我而言。