Gulp with Moch тесты зависают и время ожидания при использовании с обещаниями - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь запустить тест, используя 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');
    }
  }
}
...