以编程方式使用Mocha.js执行并行测试的示例



我已经通过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
))

最新更新