简体   繁体   中英

NODE_ENV with Jest

I am migrating from Mocha to Jest. My test imports the config package, which selects a configuration file or another depending on the NODE_ENV environment variable. However, it looks like NODE_ENV is found while running the test from Jest

Next line does not work (that is, NODE_ENV is ignored):

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

As a consequence the config package reports:

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

Do you know how to include NODE_ENV ?

Jest automatically defines environment variable NODE_ENV as test (see https://jestjs.io/docs/en/getting-started.html ), as you can confirm from your error message:

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

What you can do is simply create config/test.json and include the contents {} , which is an empty valid JSON object.

See https://github.com/lorenwest/node-config/wiki/Strict-Mode

Note : the aforementioned error occurs when you use the config package, and meanwhile you don't have the test.json file in the config directory.

The easiest way is using cross-env package:

npm install --save-dev cross-env

Then, you can use it in your package.json :

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

The warning is from the Strict-Mode. So what you have to do here is..

  1. Create a file called test.json inside config/
  2. Add NODE_ENV value as test

That should work

Please create test.js in the config folder:

module.exports = {};

and then add dotenv-cli as devDependencies

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

Note: jest automatically set NODE_ENV=test

You can add this to your babel config:

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

This should also automatically set NODE_ENV=test when running jest .

More info here: Getting Started - Jest

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM