Jest失败:在React 16升级后,从'ReactShallowRenderer.js'找不到模块'react/lib/React'

11

我刚刚从v15.6.2升级到react v16.0.0(通过变基)

问题

运行我的jest测试会出现以下错误

Test suite failed to run

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

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:191:17)
      at Object.<anonymous> (node_modules/react-test-renderer/lib/shallow/ReactShallowRenderer.js:16:13)

我如何升级

步骤1:yarn.lock

在将代码库合并到React v16分支时,我让yarn 1.1.0处理yarn.lock文件中的合并冲突

步骤2:添加适配器

我添加了新的适配器setupTestFramework.js

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

步骤三:升级软件包

并升级了以下软件包:

react "16.0.0",
enzyme "3.1.0",
jest "21.2.1",
babel-jest "21.2.0",

你们有没有发现我漏掉了什么?

2个回答

17
与 React 16 一起使用时,Enzyme 需要安装 react-test-rendererv16.x.x 版本。

8
我正在使用 react@16.2.0react-test-renderer@16.2.0,但我仍然遇到这个问题。 - carmenism
1
你能解决这个问题吗?我目前也遇到了这个问题。 - user989988

1

通过以下命令对我有用

npm uninstall react-dom  

然后

  npm install react-dom --save-dev 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接