如何解决用酶和玩笑测试React产生错误无法从'index.js'找到模块'@ babel / polyfill / lib / noConflict'
我是单元测试的新手,我刚刚开始为我的react项目编写单元测试。我的项目是使用create-react-app创建的,我已经安装了必需的测试库,例如酶,ases-adapter-react-16和jest-enzyme。
我已经在src目录中创建了一个新文件setupTests.js并添加了酶的配置。
当我尝试使用命令npm test
运行单元测试时,收到以下错误,因此测试失败。
src/App.test.js
● Test suite failed to run
Cannot find module '@babel/polyfill/lib/noConflict' from 'index.js'
However,Jest was able to find:
'./ComponentName.jsx'
You might want to include a file extension in your import,or update your 'moduleFileExtensions',which is currently ['web.js','js','web.ts','ts','web.tsx','tsx','json','web.jsx','jsx','node'].
See https://jestjs.io/docs/en/configuration#modulefileextensions-array-string
下面是setupTests.js文件,看起来像src目录中的
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import 'jest-enzyme';
configure({ adapter: new Adapter() });
下面是我的测试App.test.js文件,看起来像是我在尝试console.log的地方,但是这里失败了。如果我删除应用程序的导入,它将起作用。
import React from 'react';
import App from './App'
import { shallow } from 'enzyme';
test("this is my first test",() => {
console.log('this is my first test')
});
我正在WSL Ubuntu 18.04 LTS和Node 12.8.4上尝试此操作
任何人都可以告诉我我在哪里犯错,如果有重复的问题,请纠正我,请原谅。
谢谢。
更新
这是我尝试重现该错误的GitHub链接 https://github.com/aashayamballi/react-jest-enzyme-testing-error
我假设在components / TestComponent1.jsx内部,我正在导入import { HotTable } from "@handsontable/react";
,因此测试套件失败并给出错误。
解决方法
根据@ tmhao2005的建议,安装@babel/polyfill
测试后开始运行,没有任何错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。