【问题标题】:React native jest.preset.js file missing error反应原生 jest.preset.js 文件丢失错误
【发布时间】: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"]
}

为什么会出现这个错误?

【问题讨论】:

    标签: reactjs react-native jestjs react-native-testing-library


    【解决方案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 预设,这将如何工作?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 2020-07-27
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多