Запретить запуск JEST в соответствии с переменной среды

#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 Есть способ, хотя и хакерский. Я добавил обновление к своему ответу.