调用完成调用后,我的mocha测试似乎没有停止。我有点难过,因为它看起来与我在网上找到的所有内容完全相同。
这是test.js文件的全部内容。
virtualenv
这是我的app.js
var request = require('supertest');
var app = require('../app.js');
describe('GET /', function() {
it('Should be status code 200', function(done) {
request(app).get('/').expect(200, done);
});
});
我得到了这个输出
节点应用正在端口4000 GET /上运行 “应该是状态代码200(141ms)
1)“毕竟”挂钩“应为状态码200”
1次传球(2s)1失败
1)“毕竟”挂钩“应为状态码200”: 错误:超过2000毫秒的超时。确保在此测试中调用done()回调
答案 0 :(得分:0)
你不应该从app.js调用listen
。这是超级API变得混乱的地方。删除:
app.listen(app.get('port'), function() {
console.log('Node app is running on port', app.get('port'));
});
并坚持单独的模块。 app.js
应该只导出app
,以便您可以对其进行测试。
答案 1 :(得分:0)
我会改变你的考试。我不确定你是否需要你的app.js.你在打电话给坏请求。您应该定义端点网址并请求,而不是在应用文件上调用请求。将您的测试更改为以下内容:
system
如果您的请求需要更多时间,您还可以将this.timeout设置为15秒。至少你知道它运作正常但速度很慢。