1. ホーム
  2. node.js

[解決済み】mochaのテストで非同期関数を呼び出す際のタイムアウトを回避する方法 エラー:タイムアウトの2000msを超過しました。

2022-04-07 23:28:32

質問

私の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);
  });
});

詳しくは ドキュメント .