4

Jest - React チュートリアルに従って、React コンポーネントをテストしました。

残念ながら、Jest は次のようにスローします。

SyntaxError: /Users/mishamoroshko/react-playground/src/search-panel/questions/__tests__/questions-test.js: /Users/mishamoroshko/react-playground/src/search-panel/questions/questions.js: Unexpected token ILLEGAL
at Contextify.sandbox.run (/Users/mishamoroshko/react-playground/node_modules/jest-cli/node_modules/jsdom/node_modules/contextify/lib/contextify.js:12:24)
at JSDomEnvironment.runSourceText (/Users/mishamoroshko/react-playground/node_modules/jest-cli/src/JSDomEnvironment.js:108:22)
at Object.runContentWithLocalBindings (/Users/mishamoroshko/react-playground/node_modules/jest-cli/src/lib/utils.js:341:23)

再現するには:

  1. git clone git@github.com:SEEK-Jobs/react-playground.git
  2. cd react-playground
  3. npm install
  4. npm test

何か案は?


更新 1:

問題は、Jest が ES6 を認識していないことでしょうか6to5-jest

で2つのプリプロセッサを指定する方法はありますpackage.jsonか?

"jest": {
  "rootDir": "src",
  "scriptPreprocessor": "../preprocessor.js",
  "unmockedModulePathPatterns": [
    "../node_modules/react"
  ]
}
4

1 に答える 1

1

実際、追加6to5-jestすると問題が解決しました。

scriptPreprocessorJest で複数の を実装する方法は次のとおりです。

// preprocessor.js

var ReactTools = require('react-tools');
var to5 = require('6to5-jest').process;

module.exports = {
  process: function(src, filename) {
    return ReactTools.transform(to5(src, filename));
  }
};

これを実装するためのより良い方法があれば、コメントを残してください。

于 2015-02-03T12:21:28.797 に答える