当前位置: 首页 > 面试题库 >

在摩卡测试中,调用异步函数时如何避免超时错误:超时超过2000ms

窦英武
2023-03-14
问题内容

在我的节点应用程序中,我正在使用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);
  });
});

有关更多信息,请参阅文档。



 类似资料:
  • jasmine:在jasmine指定的超时内没有调用异步回调。DEFAULT_TIMEOUT_INTERVAL 测试window.post消息指令 用Jasmine async测试postMessage不起作用 我有下面的代码,我正在接收下面的输出。 在jasmine.DEFAULT\u timeout\u INTERVAL指定的超时内未调用异步回调 myService在父描述函数中定义。正如我所

  • 我正在尝试使用mocha和mongoose编写一个测试用例。但我编写的以下代码片段在每个“hook:error:timeout of 2000ms extered.确保在此测试中调用了done()回调”之前都给出了错误“Todo”。我无法解决此问题。我是node的初学者。谁能在这个问题上帮我一下吗。提前谢谢。

  • 问题内容: 更新记录时,我反复出现锁定超时超出异常的情况。 我正在使用Java Struts 2.1 Hibernate配置。使用的数据库是MYSQL。 任何人都知道如何解决它。 问题答案: 这里有一些建议: “ 锁定等待超时 ”通常发生在事务正在等待要更新的数据行上,而该行已被某些其他事务锁定时。 在大多数情况下,问题出在数据库方面。可能的原因可能是表格设计不当,数据量大,约束等。 请查看这个详

  • 问题内容: 我正在尝试测试Express.js控制器,但是每隔一段时间我就会碰到mocha超时提示我的问题。 文档(https://mochajs.org/#working-with-promises) 我用Promises包装了Express控制器,以便随后可以在测试中将它们返回。 我有一个基本测试,可以运行以始终得到错误消息: 我得到的错误是: 我不明白为什么会出现错误,因为我正在返回确实解决

  • 我试图使用Slack自定义命令,但不太确定如何使用延迟消息,因为Yoda Speak外部API需要超过3秒来响应。 我做了以下工作: 在我的例子中发送了slack命令,并收到了. 使用以下内容以下内容发送到响应URL。 null 我仍然得到相同的错误“该死-那个斜杠命令不起作用(错误消息:)。在slash-command管理命令”

  • 我有以下路线(快速),我正在为此编写集成测试。 代码如下: 我想测试所有组件是否协同工作,但使用虚假的HTTP响应,因此我正在为请求/ http交互创建一个存根。 我使用Chai、Sinon、Sinon Chai和Mocha作为测试跑步者。 以下是测试代码: 如果写入响应(response.write)的参数匹配,则测试通过。问题是当测试失败时,失败消息是: “错误:超时超过 2000 毫秒” 我