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.
To take advantage of the performance gains, your tests:
- Must be asynchronous
- Share no state with another test
npm install --save-dev jest-runner-concurrentThere are a couple ways to enable the runner
{
"jest": {
"runner": "jest-runner-concurrent"
}
}// <project_root>/jest.config.js
module.exports = {
runner: 'jest-runner-concurrent'
}There are also a few ways to configure the runner
Defaults:
- maxConcurrentTests - No max.
0is the same as no max
{
"jest-runner-concurrent": {
"maxConcurrentTests": 100
}
}module.exports = {
maxConcurrentTests: 100
};MIT