gpt4 book ai didi

reactjs - 为什么 Jest 在测试 React 组件时抛出 "Unexpected token ILLEGAL"?

转载 作者:行者123 更新时间:2023-12-03 13:51:57 24 4
gpt4 key购买 nike

我关注了Jest - React tutorial测试 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 安装
  4. npm 测试

有什么想法吗?

<小时/>

更新1:

我想知道问题是否是Jest不了解ES6,而我需要使用6to5-jest .

有没有办法在package.json中指定2个预处理器?

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

最佳答案

确实,添加 6to5-jest问题解决了。

以下是我在 Jest 中实现多个 scriptPreprocessor 的方法:

// 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));
}
};

如果您有更好的实现方法,请留言。

关于reactjs - 为什么 Jest 在测试 React 组件时抛出 "Unexpected token ILLEGAL"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28298315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com