随机"写EPIPE"错误

时间:2017-11-21 11:45:18

标签: node.js express request mocha chai

我目前正在为将要在此处发送HTTP请求的Node.js应用程序制作测试程序。 我使用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);

我绝对不明白发生了什么,并希望在得到其他任何内容之前解决这个问题。

1 个答案:

答案 0 :(得分:-1)

只需按照文档进行操作即可!

https://github.com/chaijs/chai-http#setting-up-requests

.attach('files', fs.readFileSync('server.js'), 'server.js')