我有一个网络应用程序,其中包含大约4000个路由测试。我现在看到的是常规失败,没有一致性:1次失败,3次失败,通过-2个示例:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/Users/markry/workspace/personal/supertest-example/tests.spec.js)
Uncaught TypeError: Cannot read property 'body' of undefined
可以使用以下示例运行一个工作示例:https://github.com/joshmatz/supertest-example并在测试中包装一个for循环。
for (step = 0; step < 5000; step++) {
it('should have return version number', function(done) {
request(app)
.get('/api')
.end(function(err, res) {
expect(res.body.version).to.be.ok;
expect(res.statusCode).to.be.equal(200);
done();
});
});
}
这是某种主机限制吗?我该如何调试呢?
谢谢:)
-----更新-----
如果我使用SuperAgent(https://github.com/visionmedia/superagent),则在以下方面可以获得100%的可靠性:
for (step = 0; step < 5000; step++) {
it('should have return version number', function(done) {
request
.get('http://localhost:3000/api')
.end(function(err, res) {
expect(res.body.version).to.be.ok;
expect(res.statusCode).to.be.equal(200);
done();
});
});
}
还将此代码段添加到server.js:
// take the port or set it to 3000
const port = process.env.PORT || 3000;
console.log('port=' + port)
// start the server
app.listen(port);
我正在更改测试以使用SuperAgent:)