在并行运行时获取 mocha 上的原始 process.argv 值

问题描述 投票:0回答:2

我刚刚升级到 mocha 8 并启用了测试文件的并行运行。它会生成多个浏览器窗口,因此它可以正常工作,但现在

process.argv
值已更改。

如何获取传递给命令的原始参数?

这是我的

.mocharc.json
文件:

{
 "timeout": 90000,
 "extension": ["ts"],
 "parallel": true,
 "jobs": 4,
 "require": [
   "./tests/config/init.ts",
 ],
 "spec": ["./tests/specs/*.ts"]
}

最初,当不使用

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
的原始值。

javascript node.js typescript parallel-processing mocha.js
2个回答
0
投票

最后,我在 GitHub 项目中询问得到的解决方案是将

process.argv
附加到
process.env
,默认情况下应该传递给工作进程。 这可以在 Mocha 的配置文件中完成
.mocharc.js
。 基本上,将您想要的标志设置到环境变量中,然后从那里提取它。


0
投票

我正在使用mochaOptions,但你需要自己处理默认值。

import {loadOptions} from 'mocha/lib/cli/options.js';
const opts = loadOptions();
© www.soinside.com 2019 - 2024. All rights reserved.