What
Jest's default runner uses a new child_process
(also known as a worker) for each test file. Although the max number of workers is configurable, running a lot of them is slow and consumes tons of memory and CPU. jest-runner-concurrent
runs your tests concurrently instead of in parallel, so you can run hundreds of tests quickly with only a few workers.
Caveats
To take advantage of the performance gains, your tests:
- Must be asynchronous
- Share no state with another test
Install
npm install --save-dev jest-runner-concurrent
Enable
There are a couple ways to enable the runner
package.json
jest.config.js
// <project_root>/jest.config.js moduleexports = runner: 'jest-runner-concurrent'
Configure
There are also a few ways to configure the runner
Defaults:
- maxConcurrentTests - No max.
0
is the same as no max
package.json
jest-runner-concurrent.config.js
moduleexports = maxConcurrentTests: 100;
License
MIT