web-dev-qa-db-ja.com

Jest構成ファイルの書き方

特定のディレクトリからのみテストを実行するために、Jestに構成ファイルを渡そうとしています。

ドキュメントによると、config.testPathDirsを使用できます: https://facebook.github.io/jest/docs/api.html#config-testpathdirs-array-string そしてjest --config=<config-file>を呼び出すことができます。

残念ながら、ドキュメントには構成ファイルの外観に関する説明は含まれていません。

jest-config.jsファイルでこれらのオプションを両方試しました。

testPathDirs = ['coredata/src'];

そして

config.testPathDirs(['coredata/src']);

そして走った:

$ jest --config=jest-config.js

...しかし、私はこのタイプのエラーを受け取ります:

$ jest --config=jest-config.js
Using Jest CLI v0.4.0
Failed with unexpected error.

/Users/carles/dev/azazo/coredata/node_modules/jest-cli/src/jest.js:179
      throw error;
            ^
SyntaxError: Unexpected token c
    at Object.parse (native)
    at /Users/carles/dev/azazo/coredata/node_modules/jest-cli/src/lib/utils.js:291:23
    at _fulfilled (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:798:54)
    at self.promiseDispatch.done (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:827:30)
    at Promise.promise.promiseDispatch (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:760:13)
    at /Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:574:44
    at flush (/Users/carles/dev/azazo/coredata/node_modules/jest-cli/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:419:13)
29

構成ファイルはJSONであることがわかりました。

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

残念ながら、ドキュメントのどこにもこれに関するヒントは見つかりませんでした。

34

package.json内でjestを直接設定できるようです。 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 <[email protected]> (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"
    }
  }
}
13
Volker Rose

構成を説明するためにドキュメントが更新されました。詳細については、こちらをご覧ください。

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

要点:

--config <path/to/json>を使用してjestを構成jsonファイルに転送する場合、「jest」キーワードなしでJSON情報のみをファイルに入れます。

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

Package.jsonを使用してjestを設定する場合は、「jest」キーを追加してから設定を追加します。

// package.json 
{ 
   "name": "packageName",
   "version": "1.0.0",
   "jest": {
     "verbose": true
   }
}
5
Valerie

2018年10月5日の現在の時点で、jest構成ファイルを簡単にセットアップできました。JSON形式である必要はありません。

私のpackage.jsonスクリプトセクション:

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

Package.jsonと一緒にjest-configファイルをルートパスに保持することにしました。それが指す場所ですが、好きな場所に置くことができます。少し短いですが、構成ファイルは次のとおりです。

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

「Jestの設定」セクションのJestドキュメント( link here )には、module.exportsオブジェクトを使用して作成できると書かれています。 「結果の構成はJSONシリアル化可能でなければならないことに注意してください」という警告が含まれており、混乱を助長しています。 「楽しいJavaScriptテスト!」ハァッ!

PS。configのrootsプロパティは、すべてのテストを探す場所をJestに伝えます。それが役立つかもしれないと思った。

4
Dan Zuzevich

JEST V20 +の場合:

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

V 20-では、testPathDirsを使用すると次の警告が表示されます。

非推奨の警告:

オプション「testPathDirs」は「roots」に置き換えられました。

Jestは現在の構成を次のように扱います:{"roots":["tests/unit /"]}

構成を更新してください。

4
Vishal Gulati