React native “笑话错误”;无法读取属性';确认贡品';“未定义”的定义;关于0.48

React native “笑话错误”;无法读取属性';确认贡品';“未定义”的定义;关于0.48,react-native,jestjs,React Native,Jestjs,我们最近有一个应用程序从ReactNative 0.42更新到了0.48。在这次更新中,我们迁移到Jest进行测试(来自mocha/chai/enzyme)。我们目前正在使用Jest v21.1.0。当我手动运行每个测试时,它们都无误通过。当我运行justwarn jest时,我得到以下错误: /scratch/react_native_app/client/node_modules/react-native/Libraries/Renderer/ReactNativeStack-dev.js:

我们最近有一个应用程序从ReactNative 0.42更新到了0.48。在这次更新中,我们迁移到Jest进行测试(来自mocha/chai/enzyme)。我们目前正在使用Jest v21.1.0。当我手动运行每个测试时,它们都无误通过。当我运行just
warn jest
时,我得到以下错误:

/scratch/react_native_app/client/node_modules/react-native/Libraries/Renderer/ReactNativeStack-dev.js:2582
warnForStyleProps$1(nativeProps,viewConfig.validAttributes);
                                          ^

TypeError: Cannot read property 'validAttributes' of undefined
    at setNativePropsStack$1 (/scratch/react_native_app/client/node_modules/react-native/Libraries/Renderer/ReactNativeStack-dev.js:2582:43)
    at Component.setNativeProps (/scratch/react_native_app/client/node_modules/react-native/Libraries/Renderer/ReactNativeStack-dev.js:2550:1)
    at AnimatedProps.callback [as _callback] (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:1819:20)
    at AnimatedProps.update (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:1698:6)
    at /scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:230:69
    at Set.forEach (native)
    at _flush (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:230:16)
    at AnimatedValue._updateValue (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:939:1)
    at TimingAnimation.animation.start._this9._animation [as _onUpdate] (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:906:8)
    at TimingAnimation.onUpdate (/scratch/react_native_app/client/node_modules/react-native/Libraries/Animated/src/AnimatedImplementation.js:345:6)
我不能确定,但我们只有两个组件处理动画和计时。我们使用的是
jest.useFakeTimers()jest.runAllTimers()我可以获取单个组件上的错误。组件的定时部分如下所示:

  componentDidMount() {
      Animated.timing(
        this.state.fadeAnim, {
          toValue: 1,
          delay: 2000
        }
      ).start();
  }


...

花了相当长的时间,但我终于弄明白了到底发生了什么。基本上,我的测试更多的是渲染动画视图,然后我想。我最初包括了
jest.useFakeTimers()
在我对组件的特定测试中,但随后我将其移动到名为
test/jest_setup.js
的安装文件中,然后将其添加到我的
package.json
文件中:

  "jest": {
    "setupFiles": [
      "./node_modules/react-native/jest/setup.js",
      "./test/jest_setup.js"
    ],
    // rest of jest config
  }

现在我的错误消失了

我有同样的问题,甚至更令人费解:如果单独运行(每个文件),测试是成功的。当我运行
npm run jest
时,我遇到了这个错误。@pietro909我上周末才发现这个问题。下面是我的答案。解决方案不起作用。顺便说一句,包含的jest.useFakeTimers()之间有什么区别;在test/jest_setup.js中?
  "jest": {
    "setupFiles": [
      "./node_modules/react-native/jest/setup.js",
      "./test/jest_setup.js"
    ],
    // rest of jest config
  }