【问题标题】:Cannot find module 'react/lib/ReactComponentTreeHook' from 'ReactDebugTool.js'无法从“ReactDebugTool.js”中找到模块“react/lib/ReactComponentTreeHook”
【发布时间】:2017-11-24 14:41:59
【问题描述】:

我正试图让 Jest 运行我的 React 应用程序的快照测试。我的 package.json 中的版本:

  "react": "15.6.1",
  "react-dom": "15.6.1",
  "react-test-renderer": "15.6.1",

我无法克服这个错误:

● Test suite failed to run


Cannot find module 'react/lib/ReactComponentTreeHook' from 'ReactDebugTool.js'

  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
  at Object.<anonymous> (node_modules/react-test-renderer/lib/ReactDebugTool.js:16:30)

我已尝试删除并重新安装我的 node_modules 目录,并且我已验证我的组件的路径是正确的,但仍然出现同样的错误。

我的测试如下所示:

import React from 'react';
import renderer from 'react-test-renderer';
import { Section } from '../../app/views/containers/section';

it('renders correctly', () => {
  const section = renderer.create(
    <Section key="1" section="finance"/>
  ).toJSON();
  expect(section).toMatchSnapshot();
});

我做错了什么?

【问题讨论】:

    标签: javascript node.js reactjs jestjs


    【解决方案1】:

    上周遇到了类似的问题,我们有一个 React-Native 项目最近升级到:

    "react-native": "0.45.1"
    "react": "16.0.0-alpha.12"
    "jest": "20.0.4"
    "react-test-renderer": "15.5.4"
    

    然后我们尝试运行我们的 Jest 测试,我们看到了与您上面提到的相同的问题。然后我们意识到有一个尖端版本的 react-test-renderer 我们尝试了一个:

    "react-test-renderer": "^16.0.0-alpha.12",

    现在问题已经不存在了。

    【讨论】:

      【解决方案2】:

      在 0.47.0

      接受的答案仍然有错误必须执行以下操作:

      "react-dom": "^16.0.0-beta.5", "react-test-renderer": "16.0.0-alpha.12",

      enzyme 将适用于上述更改,但任何类型的模拟都不会,在它们支持之前禁用水龙头。

      【讨论】:

        【解决方案3】:

        在升级到 React 16.0.0 时,我确实注意到您确实需要将 react-dom 升级到 16.0.0,它可以完美运行!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-02-24
          • 1970-01-01
          • 2018-09-21
          • 2021-11-24
          • 2018-03-23
          • 2017-03-31
          • 2016-11-25
          • 1970-01-01
          相关资源
          最近更新 更多