【问题标题】:Jest - Cannot find module 'setupDevtools' from 'setup.js'开玩笑 - 无法从“setup.js”中找到模块“setupDevtools”
【发布时间】:2017-12-19 15:06:00
【问题描述】:

我正在研究 Jest,我正在尝试将它添加到我的组件中 => github.com/bolket/react-native-scrollview-smart。

当我开始测试时出现此错误:

$ jest 
 FAIL  lib/ScrollViewSmart.test.js
  ● Test suite failed to run

    Cannot find module 'setupDevtools' from 'setup.js'

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
      at Object.<anonymous> (node_modules/react-native/jest/setup.js:30:1)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.492s

经过多次尝试,我已将测试移至__DEV__ 文件夹,错误已解决。

但是如果我再次运行测试,我又会出现错误...????.

你能解释一下哪里出了问题吗?

【问题讨论】:

    标签: react-native jestjs


    【解决方案1】:

    几分钟前我遇到了同样的错误。看起来它可能在你的 package.json 中的笑话配置中。见https://github.com/facebook/jest/issues/1840#issuecomment-251037030

    就我而言,它有效。

    【讨论】:

      【解决方案2】:

      经过数小时的搜索,我在我的项目中解决了这个问题:

      这个 Jest 配置:

      [
        "preset": "react-native",
        "rootDir": "..",
        "roots": [
          "<rootDir>"
        ],
        "setupFiles": [
          "<rootDir>/configuration/jest.setup.js"
        ],
        "transform": {
          "^.+\\.(js)$": "babel-jest",
          ".(ts|tsx)": "ts-jest"
        },
        "testRegex": "<rootDir>/__tests__/.*|\\.(test|spec)\\.(ts|tsx)$",
        "testPathIgnorePatterns": [
          "src/__tests__/.*/behavior",
          "src/__tests__/stubs/"
        ],
        "moduleFileExtensions": [
          "ts",
          "tsx",
          "js"
        ],
        "snapshotSerializers": ["enzyme-to-json/serializer"],
        ...
      ]
      

      我的笑话设置文件:

      const enzyme = require('enzyme')
      const Adapter = require('enzyme-adapter-react-16')
      
      enzyme.configure({ adapter: new Adapter() })
      

      还有我的packages.json:

      "devDependencies": {
        "@types/enzyme": "^3.1.11",
        "@types/jest": "23.1.3",
        "@types/react": "16.4.1",
        "@types/react-native": "0.55.22",
        "babel-jest": "^23.2.0",
        "babel-preset-react-native": "4.0.0",
        "chai": "4.1.2",
        "enzyme": "3.3.0",
        "enzyme-adapter-react-16": "1.1.1",
        "enzyme-to-json": "^3.3.4",
        "jest": "23.2.0",
        "jest-html-reporter": "2.4.0",
        "react-dom": "^16.4.1",
        "remote-redux-devtools": "0.5.12",
        "ts-jest": "22.4.6",
        "typescript": "2.9.2",
        ...
      }
      

      【讨论】:

        【解决方案3】:

        我认为有多种情况会导致同样的错误。就我而言,我将node_modules 添加到.watchmanconfig 文件中的ignore_dirs 中,我将其删除并且错误消失了。尝试运行jest --no-watchman 看看守望者是否是问题的根源。

        【讨论】:

          【解决方案4】:

          需要几个错误修复,我设法让测试运行: * 消除未知的“export”标记:“Unexpected token export, when import not compiled libraries”

          "transformIgnorePatterns": [
              "node_modules/?!(react-router)"
          ],
          
          • 已移除 jsdom - 不再模拟浏览器环境以进行本机反应。 “TypeError:无法设置属性 '_eventListeners' of undefined” 开玩笑”
          • 更新:testPathIgnorePatterns 忽略除“src”以外的所有文件夹,因此我们可以删除根目录:[“src”],这会导致:“无法从 'setup.js' 中找到模块 'setupDevtools'”

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-02-22
            • 2021-05-30
            • 2019-03-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-07-27
            • 1970-01-01
            相关资源
            最近更新 更多