Jest 失败在 React 16 升级后无法从 'ReactShallowRenderer.js' 中找到模块 'react/lib/React'

Jest fails Cannot find module 'react/lib/React' from 'ReactShallowRenderer.js' after React 16 upgrade

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

问题

运行 我的笑话测试给出了以下错误

  ● 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

在 rebase 期间,使用 React v16 进入一个分支 - 我让 yarn 1.1.0 take care of merge conflicts 在我的 yarn.lock 文件上

第 2 步:添加适配器

我添加了新适配器setupTestFramework.js

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

步骤 3:升级包

并升级了以下软件包:

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

谁能看到我遗漏的任何内容?

与 React 16 一起使用时,Enzyme 需要安装 v16.x.xreact-test-renderer 个。

按照以下命令为我工作

npm uninstall react-dom  

然后

  npm install react-dom --save-dev