Node.js 错误:超过2000毫秒的超时时间。确保在此测试中调用了done()回调

Node.js 错误:超过2000毫秒的超时时间。确保在此测试中调用了done()回调,node.js,mongodb,express,mocha.js,supertest,Node.js,Mongodb,Express,Mocha.js,Supertest,我编写了测试代码,它运行得很好,但在我添加了与当前代码无关的其他路由后,代码被破坏,尤其是在这一点上: 1) 在每个“hook for”应创建新todo之前: 错误:超过2000毫秒的超时时间。确保在此测试“”中调用了done()回调 整个项目是,您可以检查最后两个提交,它们与我面临的测试有问题,但是当您通过postman尝试时,它工作得很好。当从末尾返回到第三次提交时,测试工作正常。我们可能需要将测试超时增加到更大的数字 beforeEach(function(done) { // dont

我编写了测试代码,它运行得很好,但在我添加了与当前代码无关的其他路由后,代码被破坏,尤其是在这一点上:

1) 在每个“hook for”应创建新todo之前: 错误:超过2000毫秒的超时时间。确保在此测试“”中调用了done()回调


整个项目是,您可以检查最后两个提交,它们与我面临的测试有问题,但是当您通过postman尝试时,它工作得很好。当从末尾返回到第三次提交时,测试工作正常。

我们可能需要将测试超时增加到更大的数字

beforeEach(function(done) { // dont use arrow function to use this.timeout
  this.timeout(5000); // override default 2000 ms

  Todo.remove({}).then(() => {
    return Todo.insertMany(todos);
  }).then((docs) => {
    done();
  });
})

希望对你有所帮助

谢谢,它很有效。我想知道为什么?在我为本测试中根本不包括的另一个模型放置了一个模式之后,它的行为是这样的。如果我删除了这个模式,效果会很好?!也许您可以尝试设置一些断点,并在添加模式前后运行测试时调试代码,以查看差异。
beforeEach(function(done) { // dont use arrow function to use this.timeout
  this.timeout(5000); // override default 2000 ms

  Todo.remove({}).then(() => {
    return Todo.insertMany(todos);
  }).then((docs) => {
    done();
  });
})