therewillbecode
therewillbecode

Reputation: 7180

Tests process terminates when running in parallel in jest - "A worker process has quit unexpectedly!"

My jest Tests fail when running in parallel in jest.

When I try and run

jest 

From my project root I get the following error and the test process terminates.

"A worker process has quit unexpectedly!"

I am using jest 19.0.2 and node 6.9.4. I have also tried other combinations of node 7.7.2 and jest 19.0 which didn't work either.

enter image description here

Note that when I run my tests sequentially using

jest --runInBand

My tests work fine. Although since they are not running in parallel they are slower which is not ideal.

My tests launch the same server for each new test so perhaps running parallel means that multiple tests are trying to launch the server on a port where it is already running.

enter image description here

Here is my package.json:

{
  "name": "app",
  "version": "0.1.0",
  "private": true,
  "devDependencies": {
    "autoprefixer": "6.5.1",
    "babel-core": "6.17.0",
    "babel-eslint": "7.1.1",
    "babel-jest": "17.0.2",
    "babel-loader": "6.2.7",
    "babel-preset-react-app": "^2.0.1",
    "case-sensitive-paths-webpack-plugin": "1.1.4",
    "chai": "^3.5.0",
    "chai-as-promised": "^6.0.0",
    "chalk": "1.1.3",
    "connect-history-api-fallback": "1.3.0",
    "cross-spawn": "4.0.2",
    "css-loader": "0.26.0",
    "detect-port": "1.0.1",
    "dotenv": "2.0.0",
    "eslint": "3.8.1",
    "eslint-config-react-app": "^0.5.0",
    "eslint-loader": "1.6.0",
    "eslint-plugin-flowtype": "2.21.0",
    "eslint-plugin-import": "2.0.1",
    "eslint-plugin-jsx-a11y": "2.2.3",
    "eslint-plugin-react": "6.4.1",
    "extract-text-webpack-plugin": "1.0.1",
    "file-loader": "0.9.0",
    "filesize": "3.3.0",
    "fs-extra": "0.30.0",
    "gzip-size": "3.0.0",
    "html-webpack-plugin": "2.24.0",
    "http-proxy-middleware": "0.17.2",
    "jest": "^19.0.2",
    "jest-css-modules": "^1.1.0",
    "json-loader": "0.5.4",
    "object-assign": "4.1.0",
    "path-exists": "2.1.0",
    "postcss-loader": "1.0.0",
    "promise": "7.1.1",
    "react-dev-utils": "^0.4.2",
    "recursive-readdir": "2.1.0",
    "redux-mock-store": "^1.2.2",
    "sinon": "^1.17.7",
    "strip-ansi": "3.0.1",
    "style-loader": "0.13.1",
    "supertest": "^3.0.0",
    "url-loader": "0.5.7",
    "webpack": "1.14.0",
    "webpack-dev-server": "1.16.2",
    "webpack-manifest-plugin": "1.1.0",
    "whatwg-fetch": "1.0.0"
  },
  "dependencies": {
    "axios": "^0.15.3",
    "bcrypt-nodejs": "0.0.3",
    "body-parser": "^1.16.0",
    "cors": "^2.8.1",
    "eventemitter2": "^3.0.1",
    "express": "^4.14.0",
    "jwt-simple": "^0.5.1",
    "mocha": "^3.2.0",
    "mongoose": "^4.7.8",
    "morgan": "^1.7.0",
    "nodemon": "^1.11.0",
    "passport": "^0.3.2",
    "passport-jwt": "^2.2.1",
    "passport-local": "^1.0.0",
    "react": "^15.4.2",
    "react-dom": "^15.4.2",
    "react-redux": "^5.0.2",
    "react-router": "^3.0.2",
    "redux": "^3.6.0",
    "redux-devtools-extension": "^2.13.0",
    "redux-form": "^5.3.3",
    "redux-socket.io": "^1.3.1",
    "redux-thunk": "^2.2.0",
    "socket.io-client": "^1.7.3",
    "socketio-auth": "^0.1.0"
  },
  "scripts": {
    "start": "node scripts/start.js",
    "build": "node scripts/build.js",
    "test": "jest --runInBand"
  },
  "jest": {
    "collectCoverageFrom": [
      "src/**/*.{js,jsx}"
    ],
    "setupFiles": [
      "<rootDir>/config/polyfills.js"
    ],
    "testPathIgnorePatterns": [
      "<rootDir>[/\\\\](build|docs|node_modules)[/\\\\]"
    ],
    "testEnvironment": "jest-environment-jsdom",
    "testURL": "http://localhost",
    "transform": {
      "^.+\\.(js|jsx)$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.css$": "<rootDir>/node_modules/jest-css-modules"
    },
    "transformIgnorePatterns": [
      "[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$"
    ],
    "verbose": true,
    "moduleNameMapper": {
      "^react-native$": "react-native-web"
    }
  },
  "babel": {
    "presets": [
      "react-app"
    ]
  },
  "eslintConfig": {
    "extends": "react-app"
  }
}

Upvotes: 5

Views: 4832

Answers (1)

Mike Mathew
Mike Mathew

Reputation: 932

Try adding this flag to the jest CLI command:

jest --env=jsdom --runInBand

from the Jest API docs

http://facebook.github.io/jest/docs/cli.html#env-environment

Upvotes: 4

Related Questions