有关如何摆脱的任何想法在运行Jest测试时无法从'ReactRef.js'找到模块'ReactElementType'

时间:2016-12-10 20:32:39

标签: javascript react-native jestjs

我将react-native升级到0.39.0并将jest升级到17.出于某种原因,当我运行测试时,jest 17在多个测试中抛出错误。但Jest工作得很好?

  ● Test suite failed to run

Cannot find module 'ReactElementType' from 'ReactRef.js'

  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:151:17)
  at Object.<anonymous> (node_modules/react-native/Libraries/Renderer/src/renderers/shared/stack/reconciler/ReactRef.js:14:344)
  at Object.<anonymous> (node_modules/react-native/Libraries/Renderer/src/renderers/shared/stack/reconciler/ReactReconciler.js:14:14)

2 个答案:

答案 0 :(得分:1)

如果你使用旧版本的babel-plugin-flow-react-proptypes(最高0.18)和一个相当新的React Native(0.38及更高版本),就会发生这种情况。

有关详细信息,请参阅this问题。

升级到插件版本0.19似乎解决了这个问题。无论你使用哪种版本的babel-jest,即使高达18.0.0,这都可以。

即使您没有使用babel-plugin-flow-react-proptypes,您也​​可以阅读他们的explanations以了解可能导致此类错误的内容,其中Flow类型未正确剥离。

(请注意,正如您在上述问题中所看到的,有些人在升级后开始出现不同的错误。目前在尝试在iOS中运行应用时似乎就是这种情况。尽管希望问题能得到修复在不久的将来。)

答案 1 :(得分:0)

结果是反应本机38及以上 “babel-jest”:“^ 17.0.0”导致问题。 “babel-jest”:“^ 16.0.0”对我来说很好。