反应原生 jest.preset.js 文件丢失错误
Posted
技术标签:
【中文标题】反应原生 jest.preset.js 文件丢失错误【英文标题】:React native jest.preset.js file missing error 【发布时间】:2021-02-27 02:29:06 【问题描述】:我使用 @testing-library/react-native 来测试我的 RN 应用程序。当我运行纱线测试时,出现以下错误。
@testing-library/react-native should have "jest-preset.js" or "jest-preset.json" file at the root.
我在我的应用程序中使用打字稿。
我的测试脚本是这样的。
test": "jest --config jest.config.json"
jest.config.json 文件是这样的。
"preset": "@testing-library/react-native",
"collectCoverageFrom": ["src/**/*.ts,tsx"],
"moduleDirectories": ["node_modules", "src"],
"setupFiles": [
"<rootDir>/jestSetup/setup.js",
"./node_modules/react-native-gesture-handler/jestSetup.js"
],
"transformIgnorePatterns": [
"node_modules/(?!(jest-)?(react-native|@?react-navigation|@react-native-community))"
],
"coveragePathIgnorePatterns": ["/node_modules/", "/jestSetup", "/src/config.ts", "/src/app.tsx"]
为什么会出现这个错误?
【问题讨论】:
【参考方案1】:预设不再存在于 >=7.0.0 "@testing-library/react-native" 中。根据文档,似乎应该使用“react-native”作为预设。
"preset": "react-native",
V7 upgrade documentation reference
【讨论】:
【参考方案2】:我正在使用 expo,从 38 更新到 39 后,Jest 停止工作。我也有同样的问题——它抱怨缺少预设的 js 文件。
下面的预设对我来说不起作用:
"preset": "@testing-library/react-native",
所以我像这样更改了 jest.config.js:
module.exports =
clearMocks: true,
coverageDirectory: 'coverage',
testEnvironment: 'node',
preset: './node_modules/jest-expo/jest-preset.js',
将预设文件位置更改为我正在使用的 expo 文件位置,它完成了工作
【讨论】:
如果我想使用jest-expo/universal
预设,这将如何工作?以上是关于反应原生 jest.preset.js 文件丢失错误的主要内容,如果未能解决你的问题,请参考以下文章