我有一个 React Native 应用程序。当使用 Jest 运行测试时,它崩溃并显示以下输出:
<root-dir>/node_modules/@react-native/polyfills/error-guard.js:14
type ErrorHandler = (error: mixed, isFatal: boolean) => void;
^^^^^^^^^^^^
SyntaxError: Unexpected identifier 'ErrorHandler'
at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1505:14)
at Object.<anonymous> (node_modules/react-native/jest/setup.js:402:6)
我正在使用 jest
^29.2.1
,这是我的 package.json
文件中的“jest”对象:
"jest": {
"preset": "react-native",
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?react-native)",
]
}
另外,这是我的
babel.config.js
文件:
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
};
请注意,我的测试套件(
__test__
文件夹)仅包含默认的应用程序渲染测试。
关于如何解决这个问题有什么想法吗?我尝试了在其他帖子中看到的几种解决方案,包括将
"node_modules/(?!(jest-)?@?react-native|@react-native-community|@react-navigation)"
或 "/node_modules/(?!(@react-native|react-native)/).*/"
添加到我的 "transformIgnorePatterns"
文件中的 package.json
。
更新:我能够使用以下正则表达式修复此问题:“transformIgnorePatterns”:[ “node_modules/(?!(jest-)?react-native|@react-native|@react-navigation)” ]
如果有人有任何建议或更好的整体设置方法,请随时在下面添加!谢谢!