首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用node-config绕过NODE_ENV

使用node-config绕过NODE_ENV
EN

Stack Overflow用户
提问于 2020-04-22 19:38:21
回答 1查看 92关注 0票数 1

我正在尝试通过验证我的配置文件来测试它们,没有什么特别的,一个模式,一个env列表,迭代它,加载配置并根据模式验证变量。

问题是,要做到这一点,我目前必须设置process.env.NODE_ENV。由于测试有自己的保留配置文件,这意味着如果测试是并行运行的,那么当其他测试加载配置时,测试可能会更改NODE_ENV变量,虽然这似乎不太可能发生,但仍然困扰着我。

一个简单的解决方案是告诉node-config忽略环境变量,并使用一个给定的值,就像require('config')('myNodeEnv')一样,但我在wiki和文档中找不到任何类似的东西。最接近的是自定义环境变量,但这只会将问题转移到另一个变量。

EN

回答 1

Stack Overflow用户

发布于 2021-07-01 11:51:22

测试应该加载相同的“基本”测试配置文件,而不是拥有自己的配置文件。

当一个特定的测试需要覆盖一个特定值时,它应该覆盖这个特定值,而不是整个配置(不用说,我们需要确保在测试完成时修复被覆盖的值)。

当我们像上面描述的那样工作时,它减少了任何冲突的机会,因为不同的测试在完全相同的时刻覆盖完全相同的值的可能性非常低。

另一种选择是单独运行测试,例如:

代码语言:javascript
复制
npm run test:suite1
npm run test:suite2

其中,可以在package.json中的scripts节下声明test:suite1,例如:

代码语言:javascript
复制
"test:suite1": "NODE_ENV=test-conf-1 tests/suite1.js",
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61364196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档