Изменить тайм-аут по умолчанию для мокко



у меня следующий вопрос
если у нас есть модульный тестовый файл my-spec.JS и работает с мокко :



mocha my-spec.js


тайм-аут по умолчанию будет 2000 ms.It можно перезаписать для частичного теста с параметром командной строки:



mocha my-spec.js --timeout 5000


вопрос:
Можно ли изменить тайм-аут по умолчанию глобально для всех тестов ?
То есть когда вы звоните



mocha my-spec.js


значение таймаута по умолчанию будет отличаться от 2000 МС
Заранее спасибо

537   4  

4 ответов:

по умолчанию Mocha будет читать файл с именем test/mocha.opts, который может содержать аргументы командной строки. Таким образом, вы можете создать такой файл, который содержит:

--timeout 5000

всякий раз, когда вы запускаете Mocha в командной строке, он будет читать этот файл и установить тайм-аут 5 секунд по умолчанию.

другой способ, который может быть лучше в зависимости от вашей ситуации, чтобы установить его, как это на верхнем уровне describe вызовите тестовый файл:

describe("something", function () {
    this.timeout(5000);

    // tests...
});

это позволит вам установить тайм-аут только для каждого файла.

вы можете использовать оба метода, если вы хотите глобальное значение по умолчанию 5000, но установить что-то другое для некоторых файлов.


обратите внимание, что вы обычно не можете использовать функцию стрелки, Если вы собираетесь вызвать this.timeout (или доступ к любому другому члену this что Мокко устанавливает для вас). Например, это обычно не работает:

describe("something", () => {
    this.timeout(5000);

    // tests...
});

это потому, что функция стрелки принимает this из области появится функция В. Мокко вызовет функцию с хорошим значением для this но это значение не передается внутрь функции стрелка. Документация для Мокко говорит на этой теме:

передача функций стрелки ("лямбды") Мокко не рекомендуется. Из-за лексической привязки этого, такие функции не могут получить доступ к контексту Мокко.

Если вы (как и я) используете Mocha в браузере, а не на сервере, вы всегда можете изменить глобальную конфигурацию с помощью mocha.setup.

mocha.setup({ timeout: 5000 });

просто добавьте строку выше в любом месте вашего набора тестов, предпочтительно в верхней части спецификации или в отдельном помощнике теста.

здесь ссылка на документацию С несколькими примерами, показывающими, как настроить Мокко в браузере.

добавление этого для полноты. Если вы (как и я) используете скрипт в своем package.json файл, просто добавьте --timeout возможность мокко:

"scripts": {
  "test": "mocha 'test/**/*.js' --timeout 10000",
  "test-debug": "mocha --debug 'test/**/*.js' --timeout 10000"
},

затем вы можете запустить npm run test чтобы запустить набор тестов с таймаутом, установленным в 10 000 миллисекунд.

просто добавив правильный ответ, вы можете установить тайм-аут с помощью функции стрелки следующим образом:

it('Some test', () => {

}).timeout(5000)

Comments

    Ничего не найдено.