Есть ли побочные эффекты запуска шутки с --detectOpenHandles --forceExit?

Я использую jest для тестирования, и в нескольких тестовых сценариях я получаю сообщение jest:

Jest did not exit one second after the test run has completed. Принимая рекомендацию Jest для работы с --detectOpenHandles и заканчивая зависанием процесса тестирования, который никогда не заканчивается, я видел и другие онлайн-предложения по добавлению опции --forceExit. Теперь тест заканчивается, и все в порядке.

Стоит упомянуть, что все тесты работают правильно и проходят, с опциями --detectOpenHandles --forceExit или без них.

Интересно, считается ли это наилучшей практикой в таких случаях? или это просто служит мне в качестве "первой помощи"? Каковы побочные эффекты от этого?

Ура,

Ответы

Ответ 1

Из документации опция detectOpenHandles предназначена для:

Попытайтесь собрать и напечатать открытые рукоятки, чтобы Jest не выходил аккуратно. Используйте это в тех случаях, когда вам нужно использовать --forceExit, чтобы Jest мог выйти, чтобы отследить причину. Это подразумевает --runInBand, заставляя тесты выполняться последовательно. Реализовано с использованием async_hooks, поэтому оно работает только в Node 8 и новее. Эта опция имеет значительное снижение производительности и должна использоваться только для отладки.

Опцию forceExit никогда не следует использовать в качестве передового опыта, единственное время, которое вам нужно использовать, это потому, что:

  • Асинхронная функция не завершилась
  • Функция обещания не завершена
  • Соединение Websocket все еще открыто
  • Соединение с базой данных все еще открыто
  • Все, что имеет методы подключения/отключения, не отключалось до конца теста