Extending the Jest default runner to run tests serially by default
Simple wrapper over the default Jest runner that forces serial execution of test files. This is equivalent to running with --runInBand
flag by default.
Why? Sometimes you have limited/restricted resources on the test machine (like in a docker container) and running the default jest-runner
always runs in parallel unless specified otherwise. Integration tests are another scenario where running concurrent instances causes issues so using this runner ensures only 1 test runs at a time.
npm install @codejedi365/jest-serial-runner --save-dev
Option 1: Specify the runner in your Jest
config
/* jest.config.json */
{
// ...
"runner": "@codejedi365/jest-serial-runner"
// ...
}
Option 2: To specify the runner for a subset of files such as for integration tests.
/* jest.config.js */
module.exports = {
// ...
projects: [
{
// Uses the jest default runner for specification testing
displayName: "UNIT",
testMatch: ["<rootDir>/src/**/__tests__/*.spec.ts"]
},
{
// Uses the serial runner instead for integration test files
displayName: "INTEGRATION",
runner: "@codejedi365/jest-serial-runner",
testMatch: ["<rootDir>/tests/**/*.integration-test.ts"]
}
]
}
PR's & Issue contributions welcome! Please adhere to contributing guidelines or your submission will be closed or delayed.
Origin: gabrieli/jest-serial-runner
Contributors