#javascript #jestjs
#javascript #jestjs
Вопрос:
Я хочу запретить JEST запускать какие-либо тесты и показывать ошибку, если переменная среды отсутствует.
Я знаю, что можно выполнить некоторые настройки в setupFilesAfterEnv
, но я не вижу, как я могу остановить JEST там.
Спасибо
Ответ №1:
Я думаю, что лучший подход здесь — на самом деле проверить переменную окружения перед запуском самой команды (с помощью bash или cmd или другого js-скрипта).
Например, если вы хотите проверить 1 переменную из сценария npm, вы можете сделать следующее:
// with bash
//package.json
"scripts": {
"test": "[[ -z "$MY_ENV" ]] amp;amp; echo "MY_ENV NOT FOUND!" || jest"
}
//with JS
//env-checker.js
if (!process.env.hasOwnProperty('MY_ENV')) {
console.error('could not find MY_ENV!')
process.exit(1)
}
//package.json
"scripts": {
"test": "node env-checker.js amp;amp; jest"
}
Обновить:
Вы также можете выйти из процесса изнутри Jest
, но я бы сказал, что это скорее взлом, потому что вы также ограничиваете себя только 1 неудачным тестом.
Ссылка в документах Jest:https://jestjs.io/docs/en/configuration#bail-number-boolean
//in jest config
{
"setupFiles": ["./env-checker.js"],
"bail": 1
}
Комментарии:
1. Да, это один из очевидных вариантов, подумал, что это может быть возможно в jest
2. @gilamran Есть способ, хотя и хакерский. Я добавил обновление к своему ответу.