【发布时间】:2017-11-21 11:45:18
【问题描述】:
我目前正在为 Node.js 应用程序制作一个测试程序,该应用程序将在这里和那里发送 HTTP 请求。 我正在使用 Chai 创建我的测试并使用 Express 来模拟服务器。
这是我的问题:当我运行以下请求时,一切正常......但如果我多次运行它,我会随机出错。 它来来去去,似乎与我的代码中的任何内容都没有关联,所以我什至不知道在哪里看。
这是我的要求:
let chai = require('chai');
let chaiHttp = require('chai-http');
let fs = require('fs');
let should = chai.should();
chai.use(chaiHttp);
describe("Test external service 'TEST'", function () {
it('POST /testCheck', function testCheck(done) {
chai.request('http://servicetest:8888')
.post('/testCheck')
.attach('files', "server.js")
.end(function (err, res) {
if (err) {
console.log(err)
done();
} else {
res.should.have.status(202);
done();
}
})
})
})
何时生效:
Test external service 'TEST'
✓ POST /testCheck (51ms)
1 passing (60ms)
随机地,我得到了这个:
Test external service 'TEST'
1) POST /testCheck
0 passing (50ms)
1 failing
1) Test external service 'TEST'
POST /testCheck:
Error: write EPIPE
at _errnoException (util.js:1031:13)
at WriteWrap.afterWrite [as oncomplete] (net.js:873:14)
这是另一边的代码:
var express = require('express');
var app = express();
app.post('/testCheck', function(req, res) {
if ((req.get('content-type') != undefined) && (req.get('content-length') != undefined)) {
res.status(202);
res.end();
} else {
res.status(400);
res.end();
}
});
console.log("Server test started");
app.listen(8888);
我完全不明白发生了什么,并想在处理其他任何事情之前解决这个问题。
【问题讨论】:
-
我遇到了同样的问题。您找到解决此问题的方法了吗?
-
如果我没记错的话,它与我的程序启动有关,而所有加载都还没有被其他应该预先运行的程序完成,但现在已经几个月了,我没有真的不知道了
标签: node.js express request mocha.js chai