为所有testing用例(Mocha)添加一个默认的before()函数,

我正在使用TDD(Mocha)为我的node.js服务器编写函数。 为了连接到我正在做的数据库

before(function(done){ db.connect(function(){ done(); }); }); 

我使用make test运行make test ,并configuration了我的makefile以使用mocha *.js运行该特定文件夹中的所有js文件

但是对于每个js文件,我都必须独立连接到数据库,否则我的testing用例会失败,因为他们不能与其他testing文件共享通用范围。

所以问题是,是否有像beforeAll()那样简单地连接一次到数据库,然后运行所有的testing用例? 任何帮助/build议表示赞赏。

您可以将您的db连接设置为每个Mochatesting模块导入的模块。

 var db = require('./db'); 

一个好的数据库接口将在发送给它的命令完成连接之前排队。 你可以在这里使用你的优势。

在你打电话before ,只要做一些相当于no op事情。 在SQL中,这会像SELECT 1的原始查询那样简单。 你不关心结果。 查询的返回只是表示数据库已准备就绪。

由于每个摩卡模块使用相同的数据库模块,它只会连接一次。

在你的每个testing模块中使用它:

 before(function(done) { db.no_op(done); }); 

然后将db.no_op定义为执行no op并执行callback函数的函数。