How to write a Jest configuration file

后端 未结 5 956
我在风中等你
我在风中等你 2021-02-02 07:17

I am trying to pass along a configuration file to Jest in order to run tests only from a given directory.

According to documentation, you can use config.testPathDi

相关标签:
5条回答
  • 2021-02-02 07:41

    Seems to me you can configure jest directly within your package.json, see https://github.com/shidhincr/react-jest-gulp-jspm-seed/blob/master/package.json.

    {
      "name": "react-jest-gulp-seed",
      "version": "1.0.0",
      "description": "Seed for React Jest Gulp Project",
      "main": "index.js",
      "scripts": {
        "test": "jest",
        "postinstall": "jspm install"
      },
      "jest": {
        "scriptPreprocessor": "./preprocessor.js",
        "testPathIgnorePatterns": [
          "/node_modules/",
          "/jspm_packages"
        ],
        "unmockedModulePathPatterns": [
          "./node_modules/react"
        ]
      },
      "author": "Shidhin CR <shidhincr@gmail.com> (http://www.undefinednull.com/)",
      "license": "ISC",
      "dependencies": {
        "del": "^1.1.1",
        "gulp": "^3.8.11",
        "gulp-filter": "^2.0.2",
        "gulp-load-plugins": "^0.10.0",
        "gulp-react": "^3.0.1",
        "gulp-shell": "^0.4.1",
        "harmonize": "^1.4.1",
        "jest-cli": "^0.4.1",
        "jspm": "^0.15.5",
        "react": "^0.13.2",
        "react-tools": "^0.13.2",
        "run-sequence": "^1.1.0"
      },
      "devDependencies": {
        "browser-sync": "^2.7.1",
        "gulp": "^3.8.11"
      },
      "jspm": {
        "directories": {},
        "dependencies": {
          "react": "npm:react@^0.13.2"
        },
        "devDependencies": {
          "babel": "npm:babel-core@^5.1.13",
          "babel-runtime": "npm:babel-runtime@^5.1.13",
          "core-js": "npm:core-js@^0.9.4"
        }
      }
    }
    
    0 讨论(0)
  • 2021-02-02 07:42

    For JEST V20+:

    {
     "roots": ["__tests__/"]
    }
    

    For v 20-, you will get following warning if you use testPathDirs:

    Deprecation Warning:

    Option "testPathDirs" was replaced by "roots".

    Jest now treats your current configuration as: { "roots": ["tests/unit/"] }

    Please update your configuration.

    0 讨论(0)
  • 2021-02-02 07:44

    As of the current date of October 5, 2018, I was able to setup a jest configuration file with ease, without it requiring it to be in JSON format.

    My package.json scripts section:

    "scripts": {
        "start": "node server.js",
        "dev": "webpack-dev-server --hot --inline",
        "test": "jest --config ./jest-config.js",
        "build": "webpack",
        "postinstall": "webpack"
      }
    

    I decided to keep the jest-config file in the root path alongside package.json, so that's where it is pointing to, but you can put it anywhere you want. Here is the configuration file, albeit a little short:

    module.exports = {
      verbose: true,
      setupTestFrameworkScriptFile: "./enzyme.js",
      roots: [
        "../__tests__"
      ],
      modulePaths: [
        "./__stubs__"
      ],
      moduleNameMapper: {
        ".scss$": "scss-stub.js"
      }
    }
    

    The Jest documentation in the "Configuring Jest" section (link here) says that you can create it with a module.exports object. They include a caveat that says, "Please keep in mind that the resulting configuration must be JSON-serializable", which adds to the confusion. "Delightful Javascript Testing!" Hah!

    P.S. The roots property in the config tells Jest where to look for all of your tests. Thought it might help.

    0 讨论(0)
  • 2021-02-02 07:50

    I figured out that the config file is JSON.

    {
      "testPathDirs": ["coredata/src"]
    }
    

    Unfortunately I found nowhere in the documentation a hint about this.

    0 讨论(0)
  • 2021-02-02 07:55

    The docs were updated to explain the configuration. Here is the link for anyone looking for more information:

    https://facebook.github.io/jest/docs/en/configuration.html#content

    The gist:

    If using the --config <path/to/json> to direct jest to your configuration json file, you only put the JSON information in the file without the "jest" keyword.

    // config.json at <path/to/json>
    {
       "verbose": true
    }
    

    If you want to use the package.json to configure jest, add the "jest" key and then your configuration.

    // package.json 
    { 
       "name": "packageName",
       "version": "1.0.0",
       "jest": {
         "verbose": true
       }
    }
    
    0 讨论(0)
提交回复
热议问题