#javascript #jestjs
#javascript #jestjs
Вопрос:
Я довольно новичок в Jest. Используется версия 16.0.1.
У меня есть набор тестов с 3 тестами. Я сосредоточен на одном из этих тестов, который терпит неудачу. Я понимаю, что Jest должен попытаться выполнить неудачные тесты перед запуском безотказных тестов (согласно домашней странице Jest: «Сначала Jest запускает ранее неудачные тесты. Вместе с —bail он быстро предоставляет полезный сигнал «.
Кажется, я не могу заставить это работать. Я запускаю Jest со следующими параметрами:
node_modulesjest-clibinjest.js --runInBand --bail
Полоса —runInBand гарантирует, что все находится в одном процессе (полезно для отладки).
Тем не менее, все мои тесты выполняются! Что я вижу в отладчике, так это то, что каждый тест выполняется до завершения перед выполнением следующего кода:
_bailIfNeeded(aggregatedResults, watcher) {
if (this._config.bail amp;amp; aggregatedResults.numFailedTests !== 0) {
if (watcher.isWatchMode()) {
watcher.setState({ interrupted: true });
} else {
this._dispatcher.onRunComplete(this._config, aggregatedResults);
process.exit(1);
}
}
}}
Я упорядочил свои тесты так, чтобы сначала выполнялся неудачный тест, но это не приводит к завершению процесса (или, скорее, это происходит слишком поздно, после запуска других тестов).
Кроме того, я не вижу, где / как Jest записывает статус неудачных тестов, поэтому я не уверен, работает ли или как эта функция. Если я перемещаю свой неудачный тест в конец набора тестов, другие тесты запускаются первыми, даже если они проходят, поэтому я, должно быть, что-то упускаю.
Для полноты мой тестовый файл выглядит следующим образом:
describe('My test suite', () => {
it('Test 1', () => {
fail("Failing!");
});
it('Test 2', () => {
// Passing
});
it('Test 3', () => {
// Passing
});
});
Любая помощь очень ценится.
Комментарии:
1. Я нашел
.only
метод вdescribe
,it
иtest
, который полезен для фокусировки на одном неудачном тесте, но все еще задаюсь вопросом, должен ли подход, приведенный на домашней странице Jest, работать или нет.
Ответ №1:
Я знаю, что это> 1 год назад, но --bail
относится к запуску нескольких тестовых файлов. Итак, если вы разделите этот тест на три файла, вы увидите ожидаемые результаты.