reactjs - 为什么使用 create-react-app 将react-router-dom 添加到react 应用程序时 Jest 测试会中断

标签 reactjs jestjs create-react-app react-router-dom react-testing-library

我正在使用react-16.8.6运行一个create-react-app,除了添加react-router之外没有任何修改。现在测试不起作用。

回滚之后,我发现只要导入“react-router-dom”库的任何部分,基本测试就会失败。有什么想法出了什么问题吗?

下面是我注释掉该行时的 App.js 和 App.test.js:

import { Switch } from "react-router-dom";

测试运行没有问题。当我将该行返回到代码时,出现以下错误:

测试套件运行失败

Cannot find module 'react' from 'react-router-dom.js'

但是,Jest 能够找到:

'./App.css'
'./App.js'
'./App.test.js'

App.js

import React from "react";
import { Switch } from "react-router-dom";
import logo from "./logo.svg";
import "./App.css";

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

app.test.js

import React from "react";
import ReactDOM from "react-dom";
import App from "./App";

it("renders without crashing", () => {
  const div = document.createElement("div");
  ReactDOM.render(<App />, div);
  ReactDOM.unmountComponentAtNode(div);
});

最佳答案

这可能是一些包管理器安装问题。尝试全新安装:

rm -rf ./node_modules && rm yarn.lock && yarn

或者如果您使用npm:

rm -rf ./node_modules && rm package-json.lock && npm install

顺便说一句,您正在安装的 react-router-dom 版本是什么?我刚刚在新的 create-react-app 项目上尝试过,安装了最新版本的路由器,但无法重现此错误( enter image description here )

关于reactjs - 为什么使用 create-react-app 将react-router-dom 添加到react 应用程序时 Jest 测试会中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56501332/

相关文章:

javascript - 如何在 JavaScript 中准确地按名字或姓氏或名字和姓氏进行搜索?

javascript - 如何将 MSAL(用于 js 的 Microsoft 身份验证库)正确导入并使用到 javascript(非 typescript ) react 单页应用程序中?

javascript - firebase.storage() 不是开 Jest 测试用例中的函数

javascript - Create-React-App 应用程序中 index.html 和 index.js 之间的连接在哪里?

javascript - 如何在创建 React 应用程序时使用 webpack devServer 代理

javascript - 如何在接收数据时渲染(在一个路由挂载中渲染不止一次)

javascript - .getAttribute 不是函数

javascript - TypeError : Cannot read property 'scrollIntoView' of null - react. Jest 酵素

javascript - 创建 react 应用程序在代码重新加载时偶尔会随机崩溃

javascript - 将属性传递给空组件