摩卡测试超时

时间:2015-09-04 23:59:39

标签: node.js testing mocha

调用完成调用后,我的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()回调

2 个答案:

答案 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秒。至少你知道它运作正常但速度很慢。