Closed dreamerblue closed 3 years ago
最近在跑单测的时候发现 config.unittest.ts 的配置没有被合并进来,研究一番发现 midway-bin test --ts 将 NODE_ENV 设为了 unittest,这个是错误的,根据 egg 官方文档应为 test,参考 https://eggjs.org/zh-cn/basics/env.html#%E4%B8%8E-node_env-%E7%9A%84%E5%8C%BA%E5%88%AB。这个环境变量配置错误导致 egg 没能把单测环境的 config 合并。
config.unittest.ts
midway-bin test --ts
NODE_ENV
unittest
test
目前临时解决方法是在 package.json scripts 中手动指定环境变量 NODE_ENV=test。
NODE_ENV=test
附测试代码和运行结果,分别使用 midway-bin 和原生 egg-bin 执行:
describe('test', () => { before(() => { console.log('NODE_ENV', process.env.NODE_ENV); console.log('EGG_SERVER_ENV', process.env.EGG_SERVER_ENV); }); });
运行结果:
midway-bin
NODE_ENV unittest EGG_SERVER_ENV undefined
egg-bin
NODE_ENV test EGG_SERVER_ENV undefined
的确是,egg的环境变量没有按照集团定的格式来,但是egg又在代码里把test转成了unittest。
已经兼容 test 和 unittest 环境。
https://www.yuque.com/midwayjs/midway_v2/env_config#s4lB4
最近在跑单测的时候发现
config.unittest.ts
的配置没有被合并进来,研究一番发现midway-bin test --ts
将NODE_ENV
设为了unittest
,这个是错误的,根据 egg 官方文档应为test
,参考 https://eggjs.org/zh-cn/basics/env.html#%E4%B8%8E-node_env-%E7%9A%84%E5%8C%BA%E5%88%AB。这个环境变量配置错误导致 egg 没能把单测环境的 config 合并。目前临时解决方法是在 package.json scripts 中手动指定环境变量
NODE_ENV=test
。附测试代码和运行结果,分别使用 midway-bin 和原生 egg-bin 执行:
运行结果:
midway-bin
egg-bin