私はJestにReactアプリのスナップショットテストを実行させようとしています。私のpackage.jsonのバージョン:
"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();
});
私は何を間違えていますか?
先週、同様の問題に遭遇しました。最近アップグレードされたReact-Nativeプロジェクトがあります。
"react-native": "0.45.1"
"react": "16.0.0-alpha.12"
"jest": "20.0.4"
"react-test-renderer": "15.5.4"
そして、Jestテストを実行しようとしましたが、上記と同じ問題が見つかりました。次に、react-test-rendererの最先端のバージョンがあることに気付き、それを試しました。
"react-test-renderer": "^16.0.0-alpha.12"
、
そして今、問題はもうありません。
0.47.0で
受け入れられた答えにはまだエラーがあり、以下を実行する必要がありました。
"react-dom": "^16.0.0-beta.5", "react-test-renderer": "16.0.0-alpha.12",
酵素は上記の変更で動作しますが、あらゆる種類のシミュレーションは動作せず、サポートされるまでタップを無効にします。
React 16.0.0にアップグレードする際に、react-domを16.0.0にアップグレードする必要があることに気付きました。