@ludie
Вы можете использовать таймауты в Mocha.js с помощью метода this.timeout()
или через опцию командной строки --timeout
.
Синтаксис для метода this.timeout()
выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
describe('Мой тест', function() { this.timeout(5000); // Установить таймаут в 5 секунд it('должен выполняться быстро', function(done) { // Ваши проверки здесь done(); }); it('может выполняться дольше', function(done) { setTimeout(function() { // Ваши проверки здесь done(); }, 6000); // Делаем тест, который занимает больше 5 секунд }); }); |
Вы также можете установить таймаут через опцию командной строки --timeout
:
1
|
mocha --timeout 5000
|
Это установит таймаут для всех тестов в 5 секунд.
Если тест не завершается в указанный таймаут, Mocha.js выдаст ошибку "timeout of ***xms exceeded" (превышен таймаут ***x мс). Вы можете изменить эту ошибку, добавив опцию командной строки --exit
.
Например:
1
|
mocha --timeout 5000 --exit
|
Это завершит процесс тестов после первого превышения таймаута.
@ludie
Вот пример, который позволяет установить глобальный таймаут для всех тестов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Глобальный таймаут для всех тестов mocha.setup({ timeout: 5000 // Установить таймаут в 5 секунд }); it('должен выполняться быстро', function(done) { // Ваши проверки здесь done(); }); it('может выполняться дольше', function(done) { setTimeout(function() { // Ваши проверки здесь done(); }, 6000); // Делаем тест, который занимает больше 5 секунд }); mocha.run(); |
Этот пример демонстрирует установку глобального таймаута с помощью mocha.setup()
, который применяется ко всем тестам. В этом случае, все тесты должны выполниться за 5 секунд, и если тест не завершится в течение этого времени, будет выдана ошибка таймаута.
Также можно использовать this.timeout()
для установки различных таймаутов для разных тестов, как показано в предыдущем примере.