在我的 node 应用程序中,我使用mocha来测试我的代码.在使用mocha调用许多异步函数时,我得到了超时错误(Error: timeout of 2000ms exceeded.).我该如何解决这个问题?

var module = require('../lib/myModule');
var should = require('chai').should();

describe('Testing Module', function() {

    it('Save Data', function(done) {

        this.timeout(15000);

        var data = {
            a: 'aa',
            b: 'bb'
        };

        module.save(data, function(err, res) {
            should.not.exist(err);
            done();
        });

    });


    it('Get Data By Id', function(done) {

        var id = "28ca9";

        module.get(id, function(err, res) {

            console.log(res);
            should.not.exist(err);
            done();
        });

    });

});

推荐答案

您可以在运行测试时设置超时:

mocha --timeout 15000

或者,您可以通过编程方式设置每个套件或每个测试的超时:

describe('...', function(){
  this.timeout(15000);

  it('...', function(done){
    this.timeout(15000);
    setTimeout(done, 15000);
  });
});

有关更多信息,请参阅docs.

Node.js相关问答推荐

monorepo内的NPM包使用不在注册表中的本地包

如何使用聚合管道交换键值对

MongoDB-$Lookup未获得适当的结果

如何在mongodb集合中设置数据限制?

如何修复PostgreSQL和NodeJS/NestJS应用程序之间的日期时间和时区问题?

当变量在另一个文件中初始化时,在初始化错误之前无法访问变量

一个大型的单个 Redis 实例可以处理所有事情,还是多个 Redis 实例?

仅在 vue 脚本未退出的情况下使用 docker 时出现错误

如何获取需要加载cheerio的网站部分数据?

在 .htaccess 中从非 www 切换到 www 后如何解决无法访问该站点?

如何删除mongodb中嵌套数组中所有出现的数组元素

如何在不使用位置运算符 $ 的情况下更新 mongodb 文档中数组中的嵌套文档?

从数据库读取数据并将其作为可下载的 zip 文件发送

如何在 cypress 测试中进行计算

使用 Socket.io 将客户端连接到服务器

如何监控 node.js 上的网络,类似于 chrome/firefox 开发者工具?

在 Jade 包含中使用变量

如何从 findOneAndUpdate 方法中获取更新的文档?

如何让 Mocha 加载定义全局挂钩或实用程序的 helper.js 文件?

Node.js 中的 PHP exit()/die() 类似功能是什么