【问题标题】:Mocha exceeding 2000ms timeout when returning a promise [duplicate]返回承诺时摩卡超过2000毫秒超时[重复]
【发布时间】:2017-06-23 11:56:41
【问题描述】:

我正在尝试测试我的 Express.js 控制器,但我经常遇到 mocha 超时告诉我关闭的问题。

文档 (https://mochajs.org/#working-with-promises) 和此处的答案:https://stackoverflow.com/a/26572442/1646372 声明我可以返回我正在使用的承诺。

我已经用 Promises 包装了我的 express 控制器,这样我就可以在测试中返回它们。

我有一个基本测试,我可以运行该测试以始终收到错误消息:

it('should return', () => {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('hello');
    }, 2300);
  });
});

我得到的错误是:

Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

我不明白为什么会出现错误,因为我正在返回一个可以解决的承诺。

【问题讨论】:

    标签: node.js express mocha.js es6-promise


    【解决方案1】:

    您可以在命令行中使用此标志--timeout 5000 设置超时,或者您可以将其添加到测试this.timeout(5000); 的第一行,在函数内部的describe 语句下。

    【讨论】:

    • 你写的超时时间是2300,超过2000默认时间是正常的!
    • 对不起,它刚刚点击摩卡超时是最后的窗帘关闭。我在想,如果你返回一个承诺,超时就会被取消,你可以得到尽可能多的时间。现在想想,那会很危险
    • 哈哈哈没关系的朋友!
    猜你喜欢
    • 2018-11-13
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    相关资源
    最近更新 更多