我有一个世博会的应用程序,我正在设置。我已经添加了笑话测试,他们的工作很好。我想使用react-native-paper的样式,但当我添加,并修改一个页面,我到目前为止使用它的测试,我已经写了失败,由于导入的问题,我卡住了,直到如何修复它。
我的package.json如下所示
{
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"test": "jest",
"web": "expo start --web",
"lint": "eslint"
},
"jest": {
"preset": "jest-expo",
"setupFilesAfterEnv": [
"@testing-library/jest-native/extend-expect"
],
"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)"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx"
]
},
"dependencies": {
"@expo/webpack-config": "^0.17.2",
"@types/react": "~18.0.24",
"@types/react-native": "~0.70.6",
"expo": "~47.0.12",
"expo-constants": "~14.0.2",
"expo-status-bar": "~1.4.2",
"firebase": "^9.17.1",
"react": "18.1.0",
"react-dom": "18.1.0",
"react-native": "0.70.5",
"react-native-paper": "^5.4.1",
"react-native-safe-area-context": "^4.5.0",
"react-native-web": "~0.18.9"
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@expo/ngrok": "^4.1.0",
"@testing-library/jest-native": "^5.4.2",
"@testing-library/react-native": "^11.5.4",
"@types/jest": "^29.4.0",
"jest": "^26.6.3",
"jest-expo": "^48.0.2"
},
"private": true
}
我的babel. config文件
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
env: {
production: {
plugins: ['react-native-paper/babel'],
},
},
};
};
当我运行测试时,我得到了以下错误
yarn run v1.22.17
$ jest
FAIL pages/Home.test.tsx
● Test suite failed to run
TypeError: {omitted path}/node_modules/react-native-paper/lib/commonjs/index.js: Cannot read properties of undefined (reading '0')
2 | import "@testing-library/jest-native/extend-expect";
3 | import { render, screen } from "@testing-library/react-native"
> 4 | import { Provider as PaperProvider } from 'react-native-paper';
| ^
at new SourceMap (../../node_modules/@babel/generator/src/source-map.ts:61:42)
at new Generator (../../node_modules/@babel/generator/src/index.ts:24:35)
at generate (../../node_modules/@babel/generator/src/index.ts:271:15)
at generateCode (../../node_modules/@babel/core/src/transformation/file/generate.ts:35:22)
at run (../../node_modules/@babel/core/src/transformation/index.ts:59:48)
at run.next (<anonymous>)
at transform (../../node_modules/@babel/core/src/transform.ts:29:20)
at transform.next (<anonymous>)
at evaluateSync (../../node_modules/gensync/index.js:251:28)
at fn (../../node_modules/gensync/index.js:89:14)
at stopHiding - secret - don't use this - v1 (../../node_modules/@babel/core/src/errors/rewrite-stack-trace.ts:97:14)
at transformSync (../../node_modules/@babel/core/src/transform.ts:66:52)
at ScriptTransformer.transformSource (../../node_modules/@jest/transform/build/ScriptTransformer.js:464:35)
at ScriptTransformer._transformAndBuildScript (../../node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
at ScriptTransformer.transform (../../node_modules/@jest/transform/build/ScriptTransformer.js:607:25)
at Object.<anonymous> (pages/Home.test.tsx:4:1)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 1.208 s
Ran all test suites.
error Command failed with exit code 1.
谢谢
1条答案
按热度按时间icnyk63a1#
我通过在package.json中的
transformIgnorePatterns
中添加react-native-paper
修复了这个问题,现在看起来像这样: