首页 > 解决方案 > Jest 不加载环境变量(即使使用 --setupFiles dotenv/config)

问题描述

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

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

语境

这就是我设置 jest 的方式package.json

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

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

这是我的文件夹结构:

项目的文件夹结构:一个源文件夹,里面有几个文件夹,包括一个测试文件夹。 src 之外是 app.js、routes.js、.env、package.json 和其他一些文件

标签: javascriptnode.jsexpressjestjsdotenv

解决方案


看看这个项目。它同时使用cross -envdotenv将 env 变量传递给 Express:

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

或者,兄弟项目仅使用 cross-env。

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


推荐阅读