Javascript 防止JEST根据环境变量运行

Javascript 防止JEST根据环境变量运行,javascript,jestjs,Javascript,Jestjs,我希望防止JEST运行任何测试,并在缺少环境变量时显示错误 我知道在SetupFileAfterEnv中进行一些设置是可能的,但我不知道如何才能停止在那里开玩笑 谢谢我认为最好的方法实际上是在使用bash、cmd或其他js脚本运行命令之前检查环境变量 例如,如果要检查npm脚本中的1个变量,可以执行以下操作: // with bash //package.json "scripts": { "test": "[[ -z \"$MY_ENV\" ]] && echo \"M

我希望防止JEST运行任何测试,并在缺少环境变量时显示错误

我知道在SetupFileAfterEnv中进行一些设置是可能的,但我不知道如何才能停止在那里开玩笑


谢谢

我认为最好的方法实际上是在使用bash、cmd或其他js脚本运行命令之前检查环境变量

例如,如果要检查npm脚本中的1个变量,可以执行以下操作:

// with bash
//package.json
"scripts": {
    "test": "[[ -z \"$MY_ENV\" ]] && 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 && jest"
}
更新: 您也可以从Jest中退出该过程,但我认为这是一种黑客行为,因为您还将自己限制为只有一个失败的测试。 Jest文档中的参考:


是的,这是一个明显的选择,我认为这可能在jest@gilamran有一种方法,不管怎样,是一种老套的方法。我将更新添加到我的答案中。
//in jest config
{
    "setupFiles": ["./env-checker.js"],
    "bail": 1
}