2017-06-21 88 views
15

我試圖讓Jest運行我的React應用程序的快照測試。從我的package.json版本:從'ReactDebugTool.js'找不到模塊'react/lib/ReactComponentTreeHook'

"react": "15.6.1", 
    "react-dom": "15.6.1", 
    "react-test-renderer": "15.6.1", 

我不能讓過去的這個錯誤:

● Test suite failed to run 


Cannot find module 'react/lib/ReactComponentTreeHook' from 'ReactDebugTool.js' 

    at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17) 
    at Object.<anonymous> (node_modules/react-test-renderer/lib/ReactDebugTool.js:16:30) 

我試圖刪除並重新安裝我的node_modules DIR和我驗證過的路徑,我組件是正確的,但仍然得到這個相同的錯誤。

我的測試是這樣的:

import React from 'react'; 
import renderer from 'react-test-renderer'; 
import { Section } from '../../app/views/containers/section'; 

it('renders correctly',() => { 
    const section = renderer.create(
    <Section key="1" section="finance"/> 
).toJSON(); 
    expect(section).toMatchSnapshot(); 
}); 

我在做什麼錯?

回答

27

上週跑進類似的問題,我們有一個陣營本地項目最近已經升級到:

"react-native": "0.45.1" 
"react": "16.0.0-alpha.12" 
"jest": "20.0.4" 
"react-test-renderer": "15.5.4" 

,然後我們嘗試運行我們的玩笑測試,我們看到了同樣的問題,因爲你所提到的以上。然後,我們意識到存在 反應 - 測試 - 渲染的切削刃版本,我們嘗試,一出:

"react-test-renderer": "^16.0.0-alpha.12"

而現在的問題已經不再存在。

6

在0.47.0

仍然有與公認的答案錯誤,必須做到以下幾點:

"react-dom": "^16.0.0-beta.5", "react-test-renderer": "16.0.0-alpha.12",

酶將上面的修改工作,但任何形式的模擬不會,禁用水龍頭,直到他們支持。

0

在升級到React 16.0.0時,我確實注意到您需要將react-dom升級到16.0.0,並且它的工作原理完美無瑕!