Для асинхронных тестов и хуков убедитесь, что вызывается «done ()»; если возвращаете обещание, убедитесь, что оно разрешает кукловод и мокко - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь протестировать свой компонент, используя mocha и google puppeteer. В моем модульном тестовом файле я запускаю браузер кукловода до и закрываю браузер после функции. Когда я запускаю свой тестовый файл, я получаю следующую ошибку в крючок "Прежде всего" Ошибка: превышено время ожидания 2000 мс. Для асинхронных тестов и хуков убедитесь, что вызывается «done ()»; если вы возвращаете обещание, убедитесь, что оно разрешено.

const puppeteer = require('puppeteer');
const { expect } = require('chai');
const _ = require('lodash');

/* create the global variable by using lodash function */
const globalVariables = _.pick(global, ['browser', 'expect']);

/* configurable options or object for puppeteer */
const opts = {
    headless: false,
    slowMo: 100,
    timeout: 0,
    args: ['--start-maximized', '--window-size=1920,1040'] 
}

/* call the before for puppeteer for execute this code before start testing */
before (async () => {
  global.expect = expect;
  global.browser = await puppeteer.launch(opts);
});

/* call the function after puppeteer done testing */
after ( () => {
  browser.close();
  global.browser = globalVariables.browser;
  global.expect = globalVariables.expect;
});

1 Ответ

1 голос
/ 08 марта 2019

Внутри корневого каталога ваших модульных тестовых случаев, где хранятся тестовые файлы, добавьте файл mocha.opts и добавьте --timeout 50000, который установит для mocha тайм-аут после 50000 мс.

В настоящее время применяется тайм-аут по умолчанию, и поскольку тестовые действия не завершаются, вы получаете эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...