Как вы пишете в базу данных mongoDB при выполнении тестов ночных часов? - PullRequest
0 голосов
/ 29 апреля 2019

Я пишу автоматизированный набор тестов, использующий ночные часы для извлечения данных из Интернета. Тесты работают отлично.

Однако я хотел бы записать полученные данные в базу данных mongoDB.

Я могу подключиться к Монго, и могу писать в БД, когда тесты не запускаются.

Но когда я запускаю тесты, я получаю следующую ошибку :

  1) Navigate to url
       "before all" hook:
     Error: Timeout of 10000ms exceeded. 
     For async tests and hooks, ensure "done()" is called; 
     if returning a Promise, ensure it resolves. 

Я вызываю вспомогательную функцию для записи в mongodb, которая работает, когда я запускаю ее самостоятельно, а не когда она запускается в тесте nightwatch. Это та функция :

function createDBCategories(dbName, categories) {
  MongoClient.connect(url, { useNewUrlParser: true })
    .then(client => {
      const db = client.db(dbName);
      const categoryData = [
        exampleTitleOne: "exampleOne",
        exampleTitleTwo: "exampleTwo",
      ]
      db.collection("products").insertMany(categoryData, (err, res) => {
        if (err) throw err;
        console.log(`${res.insertedCount} documents inserted into ${dbName} db`);
        // db.close();
      });
    }).catch(err => {
      console.log("err", err);
    });
};

В моих ночных часах перед крючком :

  before(() => {
    createDBCategories("categoryDB", categoryData);
  });
...