2016-11-21 9 views
5

Jestを使用してクライアント側コード(testEnvironment: 'jsdom')とサーバー側コード(testEnvironment: 'node')をテストするノードアプリケーション内で、クライアント側とサーバー側のコードカバレッジを収集します。冗談構成ファイルを拡張する方法はありますか?

現在、私は4つのJest設定ファイルを使用して、これを達成するために多くの冗長構成を使用しています。

クライアント

{ 
    "bail": true, 
    "verbose": true, 
    "notify": true, 
    "scriptPreprocessor": "./node_modules/babel-jest", 
    "testPathIgnorePatterns": [ 
    "./node_modules", 
    "./coverage", 
    "./dist", 
    "./build" 
    ], 
    "testRegex": "\\.test\\.js" 
} 

顧客カバレッジ

{ 
    "bail": true, 
    "verbose": true, 
    "notify": true, 
    "scriptPreprocessor": "./node_modules/babel-jest", 
    "testPathIgnorePatterns": [ 
    "./node_modules", 
    "./coverage", 
    "./dist", 
    "./build" 
    ], 
    "testRegex": "\\.test\\.js", 
    "collectCoverageFrom": ["**/*.js", "!**/node_modules/**"], 
    "collectCoverage": true, 
    "coverageDirectory": "./coverage", 
    "coveragePathIgnorePatterns": [ 
    "./node_modules", 
    "./coverage", 
    "./dist", 
    "./build", 
    "./test" 
    ], 
    "coverageThreshold": { 
    "global": { 
     "branches": 100, 
     "functions": 100, 
     "lines": 100, 
     "statements": 100 
    } 
    } 
} 

サーバー

{ 
    "bail": true, 
    "verbose": true, 
    "notify": true, 
    "scriptPreprocessor": "./node_modules/babel-jest", 
    "testPathIgnorePatterns": [ 
    "./node_modules", 
    "./coverage", 
    "./dist", 
    "./build" 
    ], 
    "testRegex": "\\.test\\.js", 
    "testEnvironment": "node" 
} 

サーバーカバレッジ

{ 
    "bail": true, 
    "verbose": true, 
    "notify": true, 
    "scriptPreprocessor": "./node_modules/babel-jest", 
    "testPathIgnorePatterns": [ 
    "./node_modules", 
    "./coverage", 
    "./dist", 
    "./build" 
    ], 
    "testRegex": "\\.test\\.js", 
    "testEnvironment": "node", 
    "collectCoverageFrom": ["**/*.js", "!**/node_modules/**"], 
    "collectCoverage": true, 
    "coverageDirectory": "./coverage", 
    "coveragePathIgnorePatterns": [ 
    "./node_modules", 
    "./coverage", 
    "./dist", 
    "./build", 
    "./test" 
    ], 
    "coverageThreshold": { 
    "global": { 
     "branches": 100, 
     "functions": 100, 
     "lines": 100, 
     "statements": 100 
    } 
    } 
} 

設定を4回繰り返しなくても、どうすればいいですか?私はpreset設定オプションを見てきました。それを使用して、私は各構成ごとに別々のパッケージを作成する必要があります。それはお勧めの方法ですか?

答えて

1

はい、Jest v20では、configをJSファイルとして定義し、それを使って同様の設定の共通部分を共有することができます。 Docs on configuring Jest。デフォルトでは

は冗談では用のアップになります。

  • jest.config.js
  • "jest"エントリ

package.jsonで...とrootDirとして親ディレクトリを扱います。

projectsオプションもチェックしてください.1つのコードベース内にクライアント+サーバコードなどのモノレポを簡単に実行することができます。参考までにこの回答を参照してください:Testing two environments with jest