Сделайте определенный тест молчать в Jest

Есть ли способ сделать определенный тест молчать (показывать вывод консоли только в случае неудачи) в Jest? Похоже jest --silent делает все тесты тихими, что нежелательно. Мне нужно смоделировать ошибку и убедиться, что она правильно обработана, но, к сожалению, есть сторонний код, который вызывает console.error в этом случае. Но я не хочу полностью отключать console.error, так как мне нужно видеть детали, если это не удается.

0 ответов

Я не знаю, можно ли отключить тестовый пример напрямую, но вы всегда можете использовать другойtestRegex с другой конфигурацией jest для ваших тестовых файлов.

Например, вы можете принять следующее соглашение об именах для ваших тестовых файлов:

  • myfile.{js,jsx,ts,tsx}: Jest не должен подавлять вывод (console.log, ошибки и т. Д.)
  • myfile.silent.{js,jsx,ts,tsx}: Jest должен подавлять вывод

и в вашем package.json, определите свои тестовые сценарии следующим образом:

"test": "yarn test:default && yarn test:silent",
"test:silent": "jest __tests__\\/.*\\(silent\\)\\.\\(jsx?\\|tsx?\\)$ --silent",
"test:default": "jest __tests__\\/\\(?!.*silent\\).*\\.\\(jsx?\\|tsx?\\)$",

Нелегко читать регулярные выражения в package.json, поэтому я сделал это:

https://regex101.com/r/cFX9FW/1

Другие вопросы по тегам