2

我正在使用mocha为 nodejs+mongodb Web 应用程序编写单元测试。有很多测试文件需要运行mongodb。

所以我想在所有测试运行之前打开一个连接,并在所有测试之后关闭它,但我不知道该怎么做。

目前,我创建了一个文件dbtest_global.js,其中包含以下代码:

before(function(done) {
    console.log('before all');
    global.connection = openMongoDB();
    done();
});

after(function(done) {
   global.connection.close(done);
});

然后在其他测试中,我习惯require('./dbtest_global')要求它。

但是我发现在运行mocha的时候,before方法会被多次调用,导致global.connection修改了很多次。

我想知道有没有办法让beforeandafter方法在运行时只被调用一次mocha

4

2 回答 2

0

您是否尝试过使用普通的全局条件变量,以确保如果变量已设置,则 before 函数立即返回?

于 2012-05-26T18:27:48.213 回答
0

试试这个用于 mocha 的 mongodb 助手 - https://github.com/arunoda/mocha-mongo

它为您创建数据库连接并在测试前清理集合。

于 2013-04-19T14:41:03.057 回答