问题描述
我正在裸机反应本机中使用测试驱动开发,并使用包装玩笑和酶。我安装了NativeBase for UI组件。使用NativeBase中的图标时出现错误
FAIL src/screens/Welcome/Welcome.test.js
● Test suite failed to run
/Users/../node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){
SyntaxError: Invalid or unexpected token
at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1258:14)
at Object.<anonymous> (node_modules/@expo/vector-icons/src/AntDesign.ts:2:1)
我的package.json文件中有以下设置:
"jest": {
"preset": "react-native","testEnvironment": "jsdom","setupFiles": [
"./setup.js","./node_modules/react-native-gesture-handler/jestSetup.js"
],"transformIgnorePatterns": [
"/!node_modules\\/@expo"
]
},
解决方法
我遇到了相同的错误,并将此行添加到我的Jest配置中进行了修复。
"transform": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/fileTransformer.js"
}
并在项目的根目录下创建文件fileTransformer.js
。
// fileTransformer.js
const path = require('path');
module.exports = {
process(src,filename,config,options) {
return 'module.exports = ' + JSON.stringify(path.basename(filename)) + ';';
},};
如Jest文档https://jestjs.io/docs/en/webpack#mocking-css-modules
中所述