【问题标题】:Cannot find module 'setupDevtools' React-Native找不到模块“setupDevtools”React-Native
【发布时间】:2023-04-06 11:04:01
【问题描述】:

我收到以下错误:

Cannot find module 'setupDevtools' from 'setup.js'

  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:169:17

我的 JSON.package 文件如下所示:

{
  "name": "MiBase",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "babel-preset-env": "^1.7.0",
    "i": "^0.3.6",
    "jest-react-native": "^18.0.0",
    "react": "16.3.1",
    "react-native": "0.55.3",
    "react-native-datepicker": "^1.7.2",
    "react-native-image-picker": "^0.26.7",
    "react-native-ui-xg": "0.0.6",
    "react-navigation": "^1.5.11"
  },
  "devDependencies": {
    "babel-jest": "^22.4.3",
    "babel-preset-react-native": "3.0.0",
    "jest": "22.4.3",
    "react-test-renderer": "^16.3.1"
  },
  "jest": {
     "preset": "react-native",
     "moduleNameMapper": {
     "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__tests__/loginTest.js",
     "\\.(css|sass)$": "<rootDir>/__tests__/loginTest.js"
   },
   "transformIgnorePatterns": [
     "node_modules"
   ],
   "coveragePathIgnorePatterns": [
     "node_modules"
   ],
     "modulePathIgnorePatterns": [
     "node_modules"
   ]
 }

}

我的测试文件如下所示:

// __tests__/loginTest.js
import 'react-native';
import React from 'react';
import HomeSreen from '../App';

import renderer from 'react-test-renderer';

test('renders correctly', () => {
  const tree = renderer.create(<LoginScreen />).toJSON();
  expect(tree).toMatchSnapshot();
});

我对 React Native 非常陌生,甚至对使用它进行测试也很陌生。我学到的或试图解决这个问题的一切都来自这三个地方:

https://facebook.github.io/jest/docs/en/tutorial-react-native.html Jest Cannot find module 'setupDevtools' from 'setup.js' Jest - Cannot find module 'setupDevtools' from 'setup.js'

我现在还不想在课堂上测试其他函数。我只是想测试 GUI 功能并且一切都正确显示。这些函数用于处理 http 响应和 JSON 解析。

【问题讨论】:

标签: javascript react-native jestjs


【解决方案1】:

在我的情况下,我使用 TypeScript,我遇到了同样的错误,并使用以下 package.json 配置修复它:

"dependencies": {
    "react": "^16.3.0-alpha.1",
    "react-native": "0.54.3"
},
"devDependencies": {
    "@types/jest": "^22.2.2",
    "@types/react": "^16.0.41",
    "@types/react-native": "^0.52.19",
    "@types/react-test-renderer": "^16.0.1",
    "babel-jest": "22.4.3",
    "babel-preset-react-native": "4.0.0",
    "jest": "22.4.3",
    "react-addons-test-utils": "^15.6.2",
    "react-native-mock": "^0.3.1",
    "react-native-typescript-transformer": "^1.2.3",
    "react-test-renderer": "^16.3.0-alpha.1",
    "ts-jest": "^22.4.2",
    "typescript": "^2.8.1"
},
"jest": {
    "preset": "react-native",
    "moduleFileExtensions": [
        "ts",
        "tsx",
        "js"
    ],
    "transform": {
        "^.+\\.(js)$": "<rootDir>/node_modules/babel-jest",
        "\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
    },
    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
    "testPathIgnorePatterns": [
        "\\.snap$",
        "<rootDir>/node_modules/",
        "<rootDir>/lib/"
    ],
    "cacheDirectory": ".jest/cache"
}

你可以在this repo找到这个配置

希望我能帮上忙。

【讨论】:

    【解决方案2】:

    我通过以下配置解决了同样的问题:

    我的玩笑/酵素配置:

    // package.json
     "jest": {
        "preset": "react-native",
        "setupFiles": [
          "./config/enzyme.js"
        ],
        "coverageThreshold": {
          "global": {
            "branches": 90,
            "functions": 90,
            "lines": 95,
            "statements": 96
          }
        },
        "moduleFileExtensions": [
          "js"
        ],
        "coverageDirectory": "coverage",
        "collectCoverageFrom": [
          "src/**/*.js"
        ]
      }
    

    Jest 设置文件:

    // config/enzyme.js
    import { configure } from 'enzyme';
    import Adapter from 'enzyme-adapter-react-16';
    
    configure({ adapter: new Adapter() });
    

    示例:@rimiti/react-native-toastify

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 2016-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多