@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() для установки различных таймаутов для разных тестов, как показано в предыдущем примере.