【问题标题】:Jest doesn't load environment variables (even with --setupFiles dotenv/config)Jest 不加载环境变量(即使使用 --setupFiles dotenv/config)
【发布时间】:2020-08-09 11:30:11
【问题描述】:

我正在为我的 Express 项目编写测试,但是当我运行测试脚本时,我的环境变量没有加载。

在其他线程中,人们建议使用--setupFiles dotenv/config,我这样做了,但不幸的是它没有用。我尝试将它添加到我的测试脚本和jest.config.js 文件中,但都没有奏效。有人对如何解决这个问题有任何提示吗?

上下文

这就是我在package.json 上设置笑话的方式:

"scripts": {
    "test": "jest --watchAll --setupFiles dotenv/config"
  },
"jest": {
    "testEnvironment": "node"
},

在我的app.js 文件的顶部,我加载了我的环境变量 require('dotenv').config();

这是我的文件夹结构:

【问题讨论】:

    标签: javascript node.js express jestjs dotenv


    【解决方案1】:

    通过将.env 文件从src/ 文件夹移动到根文件夹来修复它。

    【讨论】:

      【解决方案2】:

      看看这个projectuses cross-envdotenv 都将环境变量传递给 Express:

      cross-env NODE_ENV=production node -r dotenv/config ./build/srv/main.js
      

      或者,兄弟project 仅使用跨环境。

      披露:我是上述“清晰”项目的作者。

      【讨论】:

      • crossenv 不是用来修复平台兼容性问题的吗?如果我错了,请纠正我,我只是不知道这有什么帮助。运行服务器时正在加载 env 变量,仅在我运行测试时才加载它们。
      • 此条目(来自package.jsonscripts 部分):"test": "cross-env NODE_ENV=test jest" 将仅在您通过执行yarn test 运行测试时加载环境变量。
      猜你喜欢
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 2017-07-09
      • 2015-09-02
      • 2021-10-14
      • 2021-11-08
      • 2020-02-14
      • 1970-01-01
      相关资源
      最近更新 更多