在并行 运行 的 mocha 上获取原始 process.argv 值
Getting original process.argv value on mocha on parallel run
我刚刚升级到 mocha 8 并启用了并行 运行 测试文件。它会生成多个浏览器 windows,因此它可以正常工作,但现在 process.argv
值已更改。
如何获取传递给命令的原始参数?
这是我的 .mocharc.json
文件:
{
"timeout": 90000,
"extension": ["ts"],
"parallel": true,
"jobs": 4,
"require": [
"./tests/config/init.ts",
],
"spec": ["./tests/specs/*.ts"]
}
最初,当运行ning没有parallel
模式时,process.argv
的值为
['/usr/local/Cellar/node/16.0.0_1/bin/node',
'/Users/current/proj/node_modules/mocha/bin/mocha',
'-r',
'/Users/current/proj/node_modules/ts-mocha/src/index.js',
'./tests/tsconfig.json',
'--config=./tests/.mocharc.json',
'--headless',
];
当运行并联模式时,显示为:
['/usr/local/Cellar/node/16.0.0_1/bin/node',
'/Users/current/proj/node_modules/mocha/lib/nodejs/worker.js',
];
这是有道理的,因为现在进程是一个工人,但我需要检索 process.argv
的原始值。
最后,我在GitHub项目中询问得到的解决方案是将process.argv
附加到process.env
,默认情况下应该传递给工作进程。
这可以在 Mocha 的配置文件 .mocharc.js
中完成。
基本上,将你想要的标志设置到一个环境变量中,然后从那里提取它。
我刚刚升级到 mocha 8 并启用了并行 运行 测试文件。它会生成多个浏览器 windows,因此它可以正常工作,但现在 process.argv
值已更改。
如何获取传递给命令的原始参数?
这是我的 .mocharc.json
文件:
{
"timeout": 90000,
"extension": ["ts"],
"parallel": true,
"jobs": 4,
"require": [
"./tests/config/init.ts",
],
"spec": ["./tests/specs/*.ts"]
}
最初,当运行ning没有parallel
模式时,process.argv
的值为
['/usr/local/Cellar/node/16.0.0_1/bin/node',
'/Users/current/proj/node_modules/mocha/bin/mocha',
'-r',
'/Users/current/proj/node_modules/ts-mocha/src/index.js',
'./tests/tsconfig.json',
'--config=./tests/.mocharc.json',
'--headless',
];
当运行并联模式时,显示为:
['/usr/local/Cellar/node/16.0.0_1/bin/node',
'/Users/current/proj/node_modules/mocha/lib/nodejs/worker.js',
];
这是有道理的,因为现在进程是一个工人,但我需要检索 process.argv
的原始值。
最后,我在GitHub项目中询问得到的解决方案是将process.argv
附加到process.env
,默认情况下应该传递给工作进程。
这可以在 Mocha 的配置文件 .mocharc.js
中完成。
基本上,将你想要的标志设置到一个环境变量中,然后从那里提取它。