Если у нас есть файл юнит-теста my-spec.js, работающий с mocha:
mocha my-spec.js
Время ожидания по умолчанию будет 2000 мс. Он может быть перезаписан для частичного тестирования с параметром командной строки:
mocha my-spec.js --timeout 5000
Можно ли глобально изменить время ожидания по умолчанию для всех тестов? то есть значение времени ожидания по умолчанию будет отличаться от 2000 мс при вызове:
mocha my-spec.js
javascript
unit-testing
mocha
люмен
источник
источник
Ответы:
По умолчанию Mocha читает файл с именем,
test/mocha.opts
который может содержать аргументы командной строки. Таким образом, вы можете создать такой файл, который содержит:Всякий раз, когда вы запускаете Mocha в командной строке, он будет читать этот файл и устанавливать время ожидания по умолчанию 5 секунд.
Другой способ, который может быть лучше в зависимости от вашей ситуации, - установить его следующим образом в
describe
вызове верхнего уровня в вашем тестовом файле:Это позволит вам установить тайм-аут только для каждого файла.
Вы можете использовать оба метода, если вы хотите установить глобальное значение по умолчанию 5000, но установить для некоторых файлов что-то другое.
Обратите внимание, что вы, как правило, не можете использовать функцию стрелки, если вы собираетесь вызывать
this.timeout
(или получить доступ к любому другому члену,this
который установлен для вас Mocha). Например, это обычно не будет работать :Это связано с тем, что функция
this
со стрелкой берется из области, в которой эта функция появляется. Мокко будет вызывать функцию с хорошим значением,this
но это значение не передается в функцию со стрелкой. Документация для Мокко говорит на эту тему :источник
/home/me/src/proj/
Mocha будет искать этот файл:/home/me/src/proj/test/mocha.opts
this
, что обычно приводит кthis.timeout
сбою, как вы показываете в своем комментарии.Просто добавив к правильному ответу, вы можете установить время ожидания с помощью функции со стрелкой, например:
источник
describe('suite', () => {...}).timeout(5000)
не работаетsetTimeout
инструкции внутри тестов.Добавим это для полноты. Если вы (как и я) используете скрипт в своем
package.json
файле, просто добавьте--timeout
опцию в mocha:Затем вы можете запустить
npm run test
свой набор тестов с таймаутом, установленным на 10 000 миллисекунд.источник
В текущих версиях Mocha время ожидания может быть изменено глобально следующим образом:
Просто добавьте строку выше в любом месте вашего набора тестов, желательно в верхней части спецификации или в отдельном помощнике по тестированию.
В более старых версиях и только в браузере вы можете изменить глобальную конфигурацию, используя
mocha.setup
.Документация не распространяется на глобальные настройки тайм - аута, но предлагает несколько примеров о том , как изменить время ожидания в других распространенных сценариев.
источник
timeout
параметров. Напротив, mochajs.org/#timeouts говорит вставлять явныеsetTimeout
инструкции внутри тестов.