摩卡和猫鼬超时

时间:2014-09-27 01:07:53

标签: javascript mongoose mocha

我正在使用mocha和mongoose,而我的beforeEach()和afterEach()函数一直挂着。它给了我一个错误:

object model "before each" hook:
Error: timeout of 2000ms exceeded 

似乎永远不会调用回调。如何为我的测试初始化​​数据库?任何指导都将不胜感激。

describe('Object model', function(){
    before(function(callback){
        if(mongoose.connection.db)
            return callback();
        else
            mongoose.createConnection(testDB.url, callback);
    });

    after(function(callback){
        mongoose.connection.close(callback)
    });

    beforeEach(function(callback){
        VerifyText.create({number:'12223334444', code: '1342'},function(err){
            callback(err);
        });
    })
    afterEach(function(callback){
        VerifyText.remove({},callback)
    })
    it('should not crash', function(callback){
        should.exist(true)
        callback();
    }) 
})

1 个答案:

答案 0 :(得分:0)

您的问题可能来自使用mongoose.createConnection而不是mongoose.connect。只有在使用.connect时,Mongoose才会填充上面使用的mongoose.connection。如果是.createConnection,它会从createConnection函数返回连接对象。

(很少回答,但我在使用createConnection搜索我自己的问题时发现了你的问题)