6

我使用 @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"]
}

为什么我会收到此错误?

4

3 回答 3

4

我正在使用 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 文件位置,它完成了工作

于 2020-12-09T17:29:14.167 回答
1

预设不再存在于 >=7.0.0 "@testing-library/react-native" 中。根据文档,似乎应该使用“react-native”作为预设。

  "preset": "react-native",

V7 升级文档参考

于 2021-08-19T14:20:54.217 回答
0

对于那些在完全最新的项目中看到这一点的人,缺少的文件是[./node_modules/]react-native/jest-preset.js,您需要确保安装了 react-native 本身。

如果您没有全局安装 react-native,就会发生这种情况。

yarn add react-native(或在全球范围内进行)

所以package.json你应该看到类似的东西:

    "react-native": "0.66.3",
于 2022-02-13T19:19:13.863 回答