Я пытаюсь запустить тест, используя Gulp и gulp-mocha, загруженные через gulp-load-plugins. Сначала я настраиваю данные с помощью асинхронных методов, затем запускаю тест, а затем, наконец, закрываю и очищаю данные. Gulp запускает задачи, подключенные к базе данных, и удаляет таблицы, затем при запуске теста зависает до истечения времени ожидания и не выводит причину ошибки.
Этот код раньше работал. Я не понимаю, что изменило мокко или глоток в их новых обновлениях. Попытался исправить некоторые вещи, но ничего нового не существует, я не хочу наводнить тесты повторяющимся кодом установки
Код Gulp:
let mocha = () => {
let config = require('configuration')();
const mongooseTools = require("./server/tools/mongoose-tools");
return mongooseTools.connect(config.db)
.then(db => mongooseTools.dropDatabase(db))
.then(() => Promise.all([
new Promise((resolve, reject) => gulp.src(testSuites, {read: false})
.pipe(plugins.mocha({
reporter: 'spec',
exit: true,
checkLeaks: true,
timeout: 10000
}))
.on('error', reject)
.on('end', resolve))
]))
.catch(err => console.log(err))
.then(() => mongooseTools.disconnect());
};
Тестовый код:
describe('User Model Tests:', () => {
it('should begin with no users', done => {
User.find({}, (err, users) => {
users.should.have.length(0);
done();
});
});
});
Пример кода мангуста
class MongooseTools {
static async connect(db) {
mongoose.Promise = global.Promise;
try {
await mongoose.connect(db.uri, {useCreateIndex: true, useNewUrlParser: true, autoIndex: db.autoIndex});
mongoose.set('debug', db.debug);
console.info(chalk.green('Connected to MongoDB.'));
return mongoose;
} catch (e) {
console.error(chalk.red(e));
throw new Error('Could not Connect To Database');
}
}
}