我已经通过cli使用Mocha.js一段时间了,我已经非常习惯了。
然而,我遇到了一些障碍,迫使我开始以编程方式使用Mocha.js。主要与我想使用的一些特定报告程序有关,这些报告程序在CLI选项方面表现不佳。
大多数事情看起来都很清楚。但是我有一些测试是使用--parallel --jobs 6
选项通过CLI并行执行的。
我无法使用Mocha以编程方式实现这一点。我在Mocha的官方文档中找到了ParallelBufferedRunner文档。然而,没有任何例子,我不确定如何正确使用它。
似乎普遍缺乏以编程方式使用Mocha的示例和方法,这非常令人沮丧。
这是我的尝试:
const Mocha = require('mocha'),
Suite = Mocha.Suite,
Runner = Mocha.Runner,
Test = Mocha.Test
const mocha = new Mocha({
reporter: 'spec'
});
mocha.parallelMode(true)
mocha.addFile('/Users/xxx/Repos/api-test-automation/test/regression-ui.spec.js');
mocha.addFile('/Users/xxx/Repos/api-test-automation/test/regression-backend.spec.js');
mocha.run(function (failures) {
process.exitCode = failures ? 1 : 0;
});
这似乎没有并行执行测试。而且,我不知道我怎么会告诉Mocha只能使用6个并行执行。
我将非常感谢一个更深入或指向相关信息的例子。
Mocha API文档非常原始。
Mocha通过生成子进程并行运行测试。因此,你将需要等待摩卡的运行。
要指定作业计数,可以在实例化mocha时将其作为选项传递。请参阅此链接
代码看起来像:
const mocha = new Mocha({
reporter: 'spec',
jobs: 6
})
// add files etc
await Promise.all(
mocha.run(
(failures) =>
process.exitCode = failures ? 1 : 0
))