繁体   English   中英

使用 node-config 绕过 NODE_ENV

[英]Bypass NODE_ENV with node-config

我正在尝试通过验证配置文件来测试我的配置文件,没什么花哨的,架构,环境列表,迭代它,加载配置并根据架构验证变量。

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

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

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

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

当我们如上所述工作时,它减少了任何碰撞的机会,因为不同测试在完全相同的时刻覆盖完全相同的值的机会非常低。

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

npm run test:suite1
npm run test:suite2

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

"test:suite1": "NODE_ENV=test-conf-1 tests/suite1.js",
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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