Проблема с шуткой: отладка неудачных тестов и использование —bail

#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 относится к запуску нескольких тестовых файлов. Итак, если вы разделите этот тест на три файла, вы увидите ожидаемые результаты.