我使用mocha爲nodejs + mongodb Web應用程序編寫單元測試。有很多測試文件需要操作mongodb。如何在所有測試運行之前打開一個mongodb連接,並在所有測試運行後在mocha中關閉它?
所以我想在所有測試運行之前打開一個連接,並在所有測試後關閉它,但我不知道該怎麼做。
目前,我創建了一個文件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
變更很多次。
我不知道有什麼辦法可以讓before
和after
方法在運行時只調用一次mocha
?
也許自從你問這個問題後行爲已經發生了變化,但是如果這是'dbtest_global.js'的整體,''before''只應該只執行一次。基本上與解決方案在這裏回答相同:http://stackoverflow.com/a/16321613/227578,並從一個快速測試,似乎工作。 – dule