我按照 Jest – React tutorial来测试React组件. 不幸的是,Jest抛出: SyntaxError: /Users/mishamoroshko/react-playground/src/search-panel/questions/__tests__/questions-test.js: /Users/mishamoroshko/react-playground/src/search-pa
不幸的是,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)
重现:
> git clone git@github.com:SEEK- Jobs / react-playground.git
> cd react-playground
> npm安装
> npm测试
有任何想法吗?
更新1:
我想知道问题是Jest不知道ES6,我需要使用6to5-jest
.
有没有办法在package.json中指定2个预处理器?
"jest": { "rootDir": "src", "scriptPreprocessor": "../preprocessor.js", "unmockedModulePathPatterns": [ "../node_modules/react" ] }确实,添加
6to5-jest
解决了这个问题.
以下是我在Jest中实现多个scriptPreprocessors的方法:
// 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)); } };
如果您有更好的方法来实现这一点,请发表评论.