无法从'ReactTestUtils.js'找到模块'react / lib / React'

时间:2017-09-23 15:19:16

标签: javascript node.js reactjs

我正在尝试使用ReactTestUtils为反应原生项目设置单元测试 但是我在运行npm test时遇到了这个错误:

Cannot find module 'react/lib/React' from 'ReactTestUtils.js'

我感觉我的依赖关系不正常,但我找不到原因。我已经尝试降级反应版本,但这不会解决我的问题并调整react-dom版本,但我似乎无法找到黄金组合。

任何人都知道这是否是一个已知问题?我无法在这里找到任何关于此的文档,也没有在反应文档中找到。

这是我的package.json配置:

    "scripts": {
    "start": "react-native-scripts start",
    "eject": "react-native-scripts eject",
    "android": "react-native-scripts android",
    "ios": "react-native-scripts ios",
    "test": "jest --watch"
  },
  "dependencies": {
    "react-native-scripts": "0.0.40",
    "expo": "18.0.3",
    "react": "16.0.0-alpha.12",
    "react-native": "0.45.1",
    "react-navigation": "1.0.0-beta.11"
  },
  "devDependencies": {
    "enzyme": "^2.9.1",
    "jest": "19.0.2",
    "jest-expo": "~18.0.0",
    "react-addons-test-utils": "^15.6.0",
    "react-dom": "^15.6.1",
    "react-test-renderer": "^16.0.0-alpha.12"
  },
  "jest": {
    "preset": "react-native",
    "collectCoverage": true,
    "coverageDirectory": "__coverage__",
    "testRegex": "./__tests__/[^setup].*.js$",
    "transformIgnorePatterns": [
      "node_modules/(?!react-native|native-base|react-navigation|react-native-fabric)"
    ],
    "setupFiles": [
      "./__tests__/setup.js"
    ]
  }

2 个答案:

答案 0 :(得分:0)

你混淆了React(网络)和React-Native。

ReactTestUtils是为React制作的,不适用于React-Native。因此,您需要在其他地方寻找React-Native的单元测试。 您还应该从项目中删除React作为依赖项。

答案 1 :(得分:0)

我在这里看到的问题是你在同时依赖于反应16和15。 react / lib / *中的内部结构在反应16中完全改变,因此不可能进行比较。 你应该用一切来反应( - *)16或15但不要两者兼而有之。

最新的Jest和酶(v3)现在已经完全反应16刚刚出来!