【问题标题】:React peer dependency issue with enzyme-adapter-react-15.4使用酶适配器反应 15.4 反应对等依赖问题
【发布时间】:2018-03-13 11:31:14
【问题描述】:

我正面临enzyme-adapter-react-15.4 的对等依赖问题。我使用 JEST 和 ENZYME 对我的 React 应用程序进行单元测试。我使用以下配置:

"react": "^15.1.0",
"enzyme": "^3.2.0",
"react-addons-test-utils": "^15.3.1",
"enzyme-adapter-react-15.4": "^1.0.5",
"react-dom": "^15.1.0",

即使我有所有模块,我也会遇到以下错误:

! peer dep missing: react@15.0.0-0 - 15.4.x, required by enzyme-adapter-react-15.4@1.0.5 npm ERR! peer dep missing: react-addons-test-utils@15.0.0-0 - 15.4.x, required by enzyme-adapter-react-15.4@1.0.5 npm ERR! peer dep missing: react-dom@15.0.0-0 - 15.4.x, required by enzyme-adapter-react-15.4@1.0.5

我在 node_modules/react/package.json 中看到安装的版本是 15.6.2,而我专门安装了 15.1 作为 prod 依赖项。

我的配置文件:

// enzyme-setup.js
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-15.4';

configure({ adapter: new Adapter() });

开玩笑:

{
    "testEnvironment": "jsdom",
    "setupTestFrameworkScriptFile": "./enzyme.setup.js",
    "testResultsProcessor": "jest-teamcity-reporter",
    "coverageReporters": [
        "teamcity", "lcov"
   ],
    "rootDir": "",
    "roots": [
      "__tests__/unit/"
    ],
    "moduleNameMapper": {
        "@PathToMappers(.*)$": "<rootDir>/src/data/mappers/$1",
        "@PathToModels(.*)$": "<rootDir>/src/data/models/$1",
        "@PathToMocks(.*)$": "<rootDir>/__tests__/mocks/data/$1",
        "@PathToXHRClient(.*)$": "<rootDir>/src/service/xhr-client/$1",
        "@PathToComponents(.*)$": "<rootDir>/src/component/$1"
    }
}

【问题讨论】:

    标签: reactjs unit-testing jestjs enzyme


    【解决方案1】:

    您需要一个如下所示的酶设置配置文件:

    //setup.js
    import Enzyme from 'enzyme';
    import Adapter from 'enzyme-adapter-react-15';
    
    Enzyme.configure({ adapter: new Adapter() });
    

    那么你需要在你的 package.json 中的 jest 对象中要求这个文件

      "jest": {
        "setupTestFrameworkScriptFile": "<rootDir>" // path from your test folder to your setup.js file
      },
    

    【讨论】:

    • 试试import Adapter from 'enzyme-adapter-react-15'; 而不是import Adapter from 'enzyme-adapter-react-15.4';
    • 但根据指导方针airbnb.io/enzyme/#installation,我们需要适配器 15.4 来响应 v 15.0.0-0 - 15.4.x。
    • @VishalGulati 你能找到使用酶适配器反应15.4 的正确设置方法吗??
    • @Jhonatan 我目前不在。将在 2 天内回来。
    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 2017-06-21
    • 2018-03-08
    • 2021-12-07
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多