我的工作,为了选择适合当前环境此时,相应的配置文件使用的值process.env.APP_ENV
项目:与摩卡测试配置模块依赖于环境变量process.env.APP_ENV
import prodParams from './production';
import stgParams from './staging';
import devParams from './development';
let params = devParams;
switch (process.env.APP_ENV) {
case 'production':
params = prodParams;
break;
case 'staging':
params = stgParams;
break;
default:
params = devParams;
}
export default params;
我想用下面的代码来测试这个(尚未与断言):
import params from '../../../parameters';
...
it.only('should return the appropriate config ', (done) => {
process.env.APP_ENV = 'production';
console.log(params);
done();
});
然而,当我设置环境变量process.env.APP_ENV
如上图所示,它仍然达到模块定义,因此它总是返回发展C onfig而不是生产环境。
撇开测试部分,功能工作正常,但我想不管测试它。
有关如何解决此问题的任何建议?
我会建议,以避免依赖等全局属性' process.env'在你所有的模块中。在应用/测试设置的入口点读取环境变量并传递给它们。在你的'parameters.js'中导出一个'function',而不是一个以加载的环境作为参数的对象。 – MarcoL