左小白的技术日常
Github

Error: Timeout of 2000ms exceeded. Mocha 超时解决方法

这篇文章发布于 2021/01/12,归类于
标签:
mocha tiemoutmocha 超时

在 mocha 中,默认每个测试时间限制为 2s,如果超过两秒就会抛出异常。对于大于 2s 的异步任务可以使用 mocha 上下文的 timeout() 方法手动指定超时时间。注意不要使用箭头函数,否则无法调用 this.timeout() 方法。

// 耗时 3s 的异步任务
function asyncOptPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (1 === 2) {
        resolve()
      } else {
        reject('不相等') // 也可以是 reject(new Error('不相等'))
      }
    }, 3000)
  })
}

describe('异步测试', function () {
  it('asyncOpt 正确执行应该返回 true', async function() {
    this.timeout(5000); // 设置超时时间为 5s
    // this.timeout(1000); 
    await asyncOptPromise()
  })
})