parallel-test-runner
Run your Mocha tests faster
parallel-test-runner is a parallel test runner for Mocha.
It runs your test files on several node processes, and does not require making any changes to your existing tests.
I was able to obtain a 2-3x speed increase in running time for my existing projects by using this package, which is pretty cool.
Installation
$ npm i -S parallel-test-runner
Usage
Create a new runner file:
parallelTestRunner.js:
#!/usr/bin/env node
const {runner} = require('parallel-test-runner');
const path = require('path');
runner()
.config({
pattern: 'test/**/*.test.js',
shuffleFiles: false,
slowTestPatterns: ['SlowTestFilePattern.js'],
requireFiles: [path.resolve(__dirname, '../test/setup.js')],
parallelFactor: 4
})
.run()
.then(() => {
process.exit(0);
})
.catch(() => {
process.exit(1);
});
Now you can simply execute ./parallelTestRunner.js to run your tests.
Flaky tests
Running the tests in parallel might cause some of them to fail randomly. This is probably because you
have concurrency issues in your tests or production code. You can try including
them in the slowTestPatterns, which will run them in a separate process.
CLI support
Might be added in the future.