摩卡猫鼬错误

Posted

技术标签:

【中文标题】摩卡猫鼬错误【英文标题】:mocha mongoose error 【发布时间】:2012-12-03 10:39:53 【问题描述】:

当 mongoose 尝试连接到 mongodb 时,我在 mocha 测试中收到以下错误:

Error: Trying to open unclosed connection.

这是我的测试:

var cfg = require('../config')
, mongoose = require('mongoose')
, db = mongoose.connect(cfg.mongo.uri, cfg.mongo.db)
, User = require('../models/user')
, Item = require('../models/item')
, should = require('should')
, fakeUser
, fakeItem;

mongoose.connection.on('error', function(err)
    console.log(err);
);

describe('User', function()
    beforeEach(function(done)
        //clear out db
        User.remove(done);

    );

    after(function(done)
        //clear out db
        User.remove(function(err)
            Item.remove(done);
        );
    );

);

【问题讨论】:

【参考方案1】:

完成后关闭连接:

after(function(done)
    //clear out db
    User.remove(function(err)
        Item.remove(function() 
            mongoose.connection.close();
            done();
        );        
    );
);

【讨论】:

我认为这通常可以工作,但我有更多的测试,所以不知道在哪里放置 .after()。 将所有测试包装在一个没有测试的describe() 中,只有一个after() 块(以及其余的describe() 块),您可以在其中放置close() 调用。

以上是关于摩卡猫鼬错误的主要内容,如果未能解决你的问题,请参考以下文章

我应该如何与摩卡和猫鼬一起使用?

带有猫鼬调用的摩卡测试功能

如何修复“错误:预期在 'ProxyZone' 中运行,但未找到。”在摩卡测试?

护照 mongoStore 在摩卡测试中抛出连接错误

摩卡柴解决多个承诺

摩卡在测试后没有退出