Я использую mocha для написания модульных тестов для веб-приложения nodejs + mongodb. Существует много тестовых файлов, в которых нужно управлять mongodb.Как открыть соединение 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
.
Интересно, есть ли способ, чтобы методы before
и after
вызывались только один раз при запуске mocha
?
Возможно, поведение изменилось с тех пор, как вы задали этот вопрос, но если это целое 'dbtest_global.js', то' before' должно выполняться только один раз. В основном то же самое, что и решение, приведенное здесь: http://stackoverflow.com/a/16321613/227578, и из быстрого теста, похоже, работает. – dule