我很难让jest在我的Expo程序中的.jsx文件上运行它的测试套件。
我的babel.config.js:
module.exports = function (api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
};
};
我的package.json:
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject",
"test": "jest --watchAll --no-cache"
},
"jest": {
"preset": "jest-expo",
"transformIgnorePatterns": [
"node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)"
],
"collectCoverage": true,
"collectCoverageFrom": [
"**/*.{js,jsx}",
"!**/coverage/**",
"!**/node_modules/**",
"!**/babel.config.js",
"!**/jest.setup.js"
]
},
"dependencies": {
"@babel/preset-env": "^7.16.0",
"@mantine/hooks": "^3.1.7",
"axios": "^0.24.0",
"expo": "~43.0.0",
"expo-status-bar": "~1.1.0",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.2",
"react-native-material-textfield": "^0.16.1",
"react-native-web": "0.17.1",
"styled-components": "^5.3.3"
},
"devDependencies": {
"@babel/core": "^7.16.0",
"@testing-library/react": "^12.1.2",
"babel-jest": "^27.3.1",
"babel-preset-react-native": "^4.0.1",
"jest": "^27.3.1",
"jest-expo": "^43.0.1",
"prettier": "2.4.1",
"react-test-renderer": "^17.0.2"
},
"private": true
}
我还尝试在presets
中添加@babel/preset-react
,但错误消息变为以下内容:
[BABEL]: Cannot find module '@babel/core'
我没有webpack.config.js或jest.config.js。
如果任何人对如何解决这个问题有任何想法,我将不胜感激。
谢谢!
编辑:我已经将'@ Babel /preset-react‘添加到我的babel.config.js文件中了,现在我从jest收到一个错误,说'add @babel/preset-react’到你的Babel配置的'presets‘部分以启用转换。我更新的babel.config.js:
module.exports = function (api) {
api.cache(true);
return {
presets: ['babel-preset-expo', '@babel/preset-react'],
plugins: ['@babel/plugin-syntax-jsx']
};
};
发布于 2021-11-12 18:08:09
所以我重新安装了我的所有依赖项,它似乎工作了……不确定问题是什么,但看起来可能是我删除或破坏了依赖文件。
https://stackoverflow.com/questions/69936608
复制相似问题