首页 > 解决方案 > 根据环境变量阻止 JEST 运行

问题描述

我想阻止 JEST 运行任何测试,并在缺少环境变量时显示错误。

我知道可以在 中进行一些设置setupFilesAfterEnv,但我不知道如何在那里停止 JEST。

谢谢

标签: javascriptjestjs

解决方案


我认为这里最好的方法实际上是在运行命令本身之前检查环境变量(使用 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"
}

更新: 您也可以从 inside 退出该过程Jest,但我会说这是一个 hack,因为您还限制了自己只有 1 个失败的测试。Jest 文档中的参考:https ://jestjs.io/docs/en/configuration#bail-number-boolean

//in jest config
{
    "setupFiles": ["./env-checker.js"],
    "bail": 1
}

推荐阅读