反应原生 jest.preset.js 文件丢失错误

Sha*_*ika 5 reactjs jestjs react-native react-native-testing-library

我使用 @testing-library/react-native 来测试我的 RN 应用程序。当我运行 yarn test 时,出现以下错误。

@testing-library/react-native should have "jest-preset.js" or "jest-preset.json" file at the root.
Run Code Online (Sandbox Code Playgroud)

我为我的应用程序使用打字稿。

我的测试脚本是这样的。

test": "jest --config jest.config.json"
Run Code Online (Sandbox Code Playgroud)

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"]
}
Run Code Online (Sandbox Code Playgroud)

为什么我收到这个错误?

And*_*cki 4

我正在使用 expo,从 38 更新到 39 后,Jest 停止工作。我有同样的问题 \xe2\x80\x94 它抱怨缺少预设的 js 文件。

\n

以下预设对我不起作用:

\n
"preset": "@testing-library/react-native",\n
Run Code Online (Sandbox Code Playgroud)\n

所以我像这样改变了 jest.config.js :

\n
module.exports = {\nclearMocks: true,\ncoverageDirectory: 'coverage',\ntestEnvironment: 'node',\npreset: './node_modules/jest-expo/jest-preset.js',\n}\n
Run Code Online (Sandbox Code Playgroud)\n

将预设文件位置更改为我正在使用的世博会位置,它完成了工作

\n