Javascript 开玩笑不';t加载环境变量(即使使用--setupFiles dotenv/config)

Javascript 开玩笑不';t加载环境变量(即使使用--setupFiles dotenv/config),javascript,node.js,express,jestjs,dotenv,Javascript,Node.js,Express,Jestjs,Dotenv,我正在为我的Express项目编写测试,但是当我运行测试脚本时,没有加载环境变量 在其他线程中,人们建议使用--setupFiles dotenv/config,我这样做了,但不幸的是,它没有起作用。我尝试将它添加到测试脚本和jest.config.js文件中,但都没有成功。有人对如何解决这个问题有任何提示吗 上下文 这就是我如何在package.json上设置jest的方法: "scripts": { "test": "jest --w

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

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

上下文

这就是我如何在
package.json上设置jest的方法:

"scripts": {
    "test": "jest --watchAll --setupFiles dotenv/config"
  },
"jest": {
    "testEnvironment": "node"
},
在我的
app.js
文件的顶部,我用
require('dotenv').config()

这是我的文件夹结构:

看看这个。将env变量传递到以下表达式时,需要同时执行和:

cross-env NODE_ENV=production node -r dotenv/config ./build/srv/main.js
或者,兄弟姐妹仅使用交叉环境


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

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

crossenv不是要解决平台兼容性问题吗?如果我错了,请纠正我,我只是不知道这有什么帮助。当我运行服务器时会加载环境变量,而不仅仅是在我运行测试时才会加载。此条目(来自
package.json
scripts
部分):
“test”:“cross env NODE_env=test jest”
仅在通过执行
纱线测试运行测试时才会加载环境变量。