使用Jest和React测试库测试React应用时出现TypeError(涉及npm文件:依赖项)

时间:2020-11-10 23:03:34

标签: reactjs webpack jestjs react-testing-library

问题

我在monorepo-common-uidata-manager-ui中有两个React项目。 data-manager-uinpm file:具有common-ui依赖性。这两个项目都可以正常构建和运行。 common-ui是使用Material UI的某些组件的集合/库。 data-manager-ui只是在应用程序入口点app.tsx中渲染common-ui中的组件。

data-manager-ui还包括一个简单的测试文件app.test.tsx,该文件使用Jest和React Testing库测试app.tsx

但是运行测试会产生此错误:

TypeError:react_2.default.createElement不是一个函数|在对象。 (src / app / app.test.tsx:9:31)

复制步骤

我在此repository中重新创建了一个最小设置,其配置与我要解决此问题的主项目中的配置相同。

  • common-ui项目根目录构建npm run build common-ui
  • data-manager-ui项目根目录运行npm run start data-manager-ui(这会在http:// localhost:7002上部署data-manager-ui
  • 运行data-manager-ui测试:从npm run test项目根目录开始data-manager-ui
  • 获取TypeError: react_2.default.createElement is not a function

尝试的事情

由于npm file:的依赖性,我知道data-manager-ui项目将以两个版本的React / Material UI(自己的依赖性以及common-ui依赖性)结束。为了避免这种情况,我有:

  • 已配置的common-ui Webpack外部here
  • 已配置的data-manager-ui Webpack别名here
  • 已配置的Jest与data-manager-ui Webpack别名here

我想我在那里缺少一些配置。如果common-ui作为软件包发布并使用,则错误消失并且测试运行正常。但是在此阶段,发布common-ui对我来说不是一种选择,因此,我被阻止了。任何帮助/指针将不胜感激。

谢谢。

0 个答案:

没有答案
相关问题