带有Jest的节点_ENV

ny6fqffe  于 2022-12-08  发布在  Jest
关注(0)|答案(5)|浏览(215)

我正在从Mocha迁移到Jest。我的测试导入config包,它根据NODE_ENV环境变量选择一个配置文件或另一个配置文件。
下一行不起作用(即忽略NODE_ENV):

NODE_ENV=test jest test/*.js --notify --config jest.config.json

因此,config程序包报告:

console.error node_modules/config/lib/config.js:1727
WARNING: NODE_ENV value of 'test' did not match any deployment config file names.

您知道如何包含NODE_ENV吗?

pcww981p

pcww981p1#

Jest自动将环境变量NODE_ENV定义为test(请参见https://jestjs.io/docs/environment-variables),您可以从错误消息中确认:

console.error node_modules/config/lib/config.js:1727
WARNING: NODE_ENV value of 'test' did not match any deployment config file names.

您可以做的只是创建config/test.json并包含内容{},这是一个空的有效JSON对象。
请参阅https://github.com/lorenwest/node-config/wiki/Strict-Mode

    • 注意**:上述错误是在使用config包,同时config目录下没有test.json文件的情况下发生的。
eoigrqb6

eoigrqb62#

警告来自严格模式。所以你要做的是...
1.在config/中创建名为test.json的文件
1.将NODE_ENV值相加为test
应该可以

q1qsirdb

q1qsirdb3#

最简单的方法是使用cross-env包:

npm install --save-dev cross-env

然后,您可以在package.json中使用它:

"scripts": {
    "test": "cross-env NODE_ENV=development jest --config jest.config.json"
}
dpiehjr4

dpiehjr44#

请在config文件夹中创建test.js

module.exports = {};

然后添加dotenv-cli作为设备依赖项

dotenv -e .env -- jest --maxWorkers=50% --watch

注:jest自动设置NODE_ENV=测试

4c8rllxm

4c8rllxm5#

你可以把这个添加到你的巴别塔配置中:

"env": {
  "test": {
    "presets": [["env"], ...<OTHER PRESETS>]
  }
}

在运行jest时,也应该自动设置NODE_ENV=test
更多信息,请访问:入门-Jest

相关问题