试图找到一种常见的解决方案,该方法如何根据package.json中的测试命令以及.env文件中的相应环境变量来运行测试。
.env。 //文件
BASE_URL=dev
BASE_URL=stage
API_DEV=api-dev
API_STG=api-stage
package.json //文件
"test:dev": "mocha ...",
"test:stage": "mocha ...",
启动 test:dev 我想为我的测试获取DEV环境的所有变量。
我可以这样配置吗?
答案 0 :(得分:1)
假设您的package.json
包含以下脚本属性-
"test:local": "APP_ENV=local mocha ...",
"test:dev": "APP_ENV=dev mocha ...",
"test:stage": "APP_ENV=stage mocha ...",
"test:prod": "APP_ENV=prod mocha ..."
并假设您具有以下文件:.env
的{{1}},prod
的{{1}}和.env.stage
环境的stage
。
现在,您可以在脚本中使用.env.dev
软件包动态加载dev
文件。
env
通过这种方式,您可以在dotenv
对象中使用环境变量
答案 1 :(得分:0)
好,我是这样解决的:
在config
文件夹中,
.env
stage.env
prod.env
并拥有index.js
文件,其中:
const {NODE_ENV = 'dev'} = process.env;
const dotenv = require('dotenv').config({path: `${__dirname}/${NODE_ENV}.env`});
module.exports = {
api: {
url: dotenv.parsed.API_BASE || ''
},
elastic: {
host: dotenv.parsed.ELASTIC_HOST || ''
}
};
在json包中,我有:
"elastic:dev": "mocha ./test/elasticsearch/*.js",
"elastic:stage": "NODE_ENV=stage mocha ./test/elasticsearch/*.js",
"elastic:prod": "NODE_ENV=prod mocha ./test/elasticsearch/*.js"
根据环境,又可以像老板一样轻松便捷地开始测试。