Skip to content

Extending the Jest default runner to run tests serially - useful for integration tests.

License

Notifications You must be signed in to change notification settings

gabrieli/jest-serial-runner

Repository files navigation

jest-serial-runner

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.

Installation

npm install jest-serial-runner --save-dev

Usage

Option 1: Specify the runner in your Jest config

/* jest.config.json */
{
    // ...
    "runner": "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: "jest-serial-runner",
            testMatch: ["<rootDir>/tests/**/*.integration-test.ts"]
        }
    ]
}

Contributors

Thank you to all of our contributors!

PR's & Issue contributions welcome! Please adhere to contributing guidelines or your submission will be closed or delayed.

About

Extending the Jest default runner to run tests serially - useful for integration tests.

Resources

License

Stars

Watchers

Forks

Packages

No packages published