【问题标题】:Jest sometimes cannot find modulesJest 有时找不到模块
【发布时间】:2018-11-06 15:32:09
【问题描述】:

我遇到了这个问题:

有时在运行测试时 jest 找不到模块。每次都是完全随机的模块,而不是同一个。前一两个测试套装因此失败,其余的都通过了。有时一切都好。我使用 babel。

package.json 中的笑话配置

"jest": {
  "collectCoverageFrom": [
    "src/**/*.js",
    "src/**/*.jsx"
  ],
  "transform": {
    "^.+\\.jsx?$": "babel-jest"
  },
  "moduleDirectories": [
    "node_modules",
    "src"
  ],
  "moduleNameMapper": {
    "\\.(css|less|scss)$": "babel-jest",
    "\\.(jpg|jpeg|png|svg)$": "<rootDir>/fileMock.js"
  },
  "setupFiles": [
    "./testsSetup.js"
  ],
  "testURL": "http://localhost"
},

testSetup.js

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

configure({ adapter: new Adapter() })

我运行测试时将npm test 设置为jest --color --coverage --notify

我的配置中是否缺少某些东西或这里有什么问题?找不到类似的问题

【问题讨论】:

    标签: reactjs jestjs enzyme


    【解决方案1】:

    我不时遇到类似的问题 - 通常是在有很多变化的分支之间切换时。

    清除jest 的缓存解决了我的问题。

    ./node_modules/.bin/jest --clearCache
    

    更多详情请关注clearCache

    您还可以检查jestshowconfig 并手动删除cacheDirectory 位置-clearCache 也是如此。

    希望这会有所帮助!

    【讨论】:

    • 不幸的是它没有:(我也试过 --no-cache 参数也没有结果。有时它确实有效,有时不是
    • 并行运行测试会不会有问题? - 也许嘲笑一些在其他测试中使用的模块?如果您使用 runInBand 连续运行测试会发生什么?
    • 看来这是一个原因,也是一个解决方案。非常感谢!
    • 很高兴它有帮助。你做了导致这种情况的测试吗? runInBand 有效,但运行测试确实需要更长的时间。
    猜你喜欢
    • 2022-01-18
    • 2020-02-04
    • 2020-03-23
    • 1970-01-01
    • 2021-05-15
    • 2021-07-06
    • 2020-12-17
    • 2021-03-15
    • 2020-04-02
    相关资源
    最近更新 更多