33

每次我开玩笑时它都不会运行任何东西。我已经让计数器任意高了。我用 --no-cache 开玩笑

jest --debug 输出如下:

{
  "configs": [
    {
      "automock": false,
      "browser": false,
      "cache": true,
      "cacheDirectory": "/var/folders/7v/64n1tsk11zs2pbwf5bm_c9kc0000gn/T/jest_dx",
      "clearMocks": false,
      "coveragePathIgnorePatterns": [
        "/node_modules/"
      ],
      "detectLeaks": false,
      "forceCoverageMatch": [],
      "globals": {},
      "haste": {
        "defaultPlatform": "ios",
        "platforms": [
          "android",
          "ios",
          "native"
        ],
        "providesModuleNodeModules": [
          "react-native"
        ]
      },
      "moduleDirectories": [
        "node_modules"
      ],
      "moduleFileExtensions": [
        "js",
        "json",
        "jsx",
        "node"
      ],
      "moduleNameMapper": [
        [
          "^React$",
          "/Users/skilurus/github/flock-react-app/node_modules/react"
        ]
      ],
      "modulePathIgnorePatterns": [
        "/Users/skilurus/github/flock-react-app/node_modules/react-native/Libraries/react-native/"
      ],
      "name": "b29a126b130a0be47202d3bc7b00f1b4",
      "resetMocks": false,
      "resetModules": false,
      "restoreMocks": false,
      "rootDir": "/Users/skilurus/github/flock-react-app",
      "roots": [
        "/Users/skilurus/github/flock-react-app"
      ],
      "runner": "jest-runner",
      "setupFiles": [
        "/Users/skilurus/github/flock-react-app/node_modules/regenerator-runtime/runtime.js",
        "/Users/skilurus/github/flock-react-app/node_modules/react-native/jest/setup.js",
        "/Users/skilurus/github/flock-react-app/test-setup.js"
      ],
      "snapshotSerializers": [
        "/Users/skilurus/github/flock-react-app/node_modules/enzyme-to-json/serializer.js"
      ],
      "testEnvironment": "/Users/skilurus/github/flock-react-app/node_modules/jest-environment-jsdom/build/index.js",
      "testEnvironmentOptions": {},
      "testLocationInResults": false,
      "testMatch": [
        "**/__tests__/**/*.js?(x)",
        "**/?(*.)(spec|test).js?(x)"
      ],
      "testPathIgnorePatterns": [
        "/node_modules/",
        "e2e"
      ],
      "testRegex": "",
      "testRunner": "/Users/skilurus/github/flock-react-app/node_modules/jest-jasmine2/build/index.js",
      "testURL": "about:blank",
      "timers": "real",
      "transform": [
        [
          "^.+\\.js$",
          "/Users/skilurus/github/flock-react-app/node_modules/babel-jest/build/index.js"
        ],
        [
          "^[./a-zA-Z0-9$_-]+\\.(bmp|gif|jpg|jpeg|mp4|png|psd|svg|webp)$",
          "/Users/skilurus/github/flock-react-app/node_modules/react-native/jest/assetFileTransformer.js"
        ]
      ],
      "transformIgnorePatterns": [
        "node_modules/(?!react-native|native-base|react-navigation|react-native-fabric|tipsi-stripe)"
      ],
      "watchPathIgnorePatterns": []
    }
  ],
  "globalConfig": {
    "bail": false,
    "changedFilesWithAncestor": false,
    "collectCoverageFrom": [
      "src/**/*.{js,jsx}"
    ],
    "coverageDirectory": "/Users/skilurus/github/flock-react-app/__coverage__",
    "coverageReporters": [
      "json",
      "lcov",
      "text"
    ],
    "coverageThreshold": {
      "global": {
        "branches": 70,
        "functions": 75,
        "lines": 85,
        "statements": 80
      }
    },
    "detectLeaks": false,
    "expand": false,
    "globalSetup": null,
    "globalTeardown": null,
    "listTests": false,
    "mapCoverage": false,
    "maxWorkers": 7,
    "noStackTrace": false,
    "nonFlagArgs": [],
    "notify": false,
    "notifyMode": "always",
    "passWithNoTests": false,
    "rootDir": "/Users/skilurus/github/flock-react-app",
    "runTestsByPath": false,
    "testFailureExitCode": 1,
    "testPathPattern": "",
    "testResultsProcessor": null,
    "updateSnapshot": "new",
    "useStderr": false,
    "verbose": true,
    "watch": false,
    "watchman": true
  },
  "version": "22.3.0"
}

节点--版本:8.9.4

npm --版本:5.6.0

纱线——版本 1.3.2

有没有人见过类似的东西?有人知道热修复这个吗?

4

12 回答 12

16

这也发生在我身上,但它是间歇性的,虽然非常令人沮丧。我发现了一种解决方法,即使用 --runInBand 标志运行,它只是在同一个线程中运行测试:

jest --runInBand
于 2018-07-02T13:39:17.167 回答
15

作为记录,在我的情况下,它原来是一个缓存问题(我之前尝试了很多其他的事情)。

对于 jest >=22.0.0使用--clearCache清除缓存的选项。

对于 jest <22.0.0使用该--showConfig选项,搜索cacheDirectory属性并删除提到的目录。

希望这可以帮助某人。

于 2019-05-13T14:45:11.210 回答
9

像这样运行你的测试:

jest --detectOpenHandles --forceExit 

--detectOpenHandles注销错误会阻止您的测试清楚地退出,这意味着--runInBand可以确保您的测试在相同的线程中运行,因此不会重叠。 --forceExit如果出现问题而不是挂起,它将终止您的测试。

于 2021-03-22T23:09:11.403 回答
5

在 MacOS 上卸载和重新安装 watchman 对我不起作用。运行watchman version无限期挂起。

这样做可以解决守望者挂起的问题:

launchctl unload ~/Library/LaunchAgents/com.github.facebook.watchman.plist
watchman version

https://github.com/facebook/watchman/issues/381#issuecomment-257673900

你应该看到这样的东西,然后你就知道它起作用了:

{
    "version": "2021.08.23.00"
}

然后重新运行你的笑话测试

于 2021-08-31T03:48:20.493 回答
5

在 MacOS 上,我通过watchman使用卸载和重新安装brew uninstall watchman,然后使用brew install watchman. 我最近升级了操作系统,因此可能与它有关。

于 2021-03-14T04:44:56.833 回答
2

所以我遇到了类似的情况,只是那个笑话拒绝运行我的任何测试!原因有点令人费解:我已经超过 6 个月没有运行该项目,并且各种依赖项都发现了漏洞问题。当我上次运行项目和测试时,我已经使用全局配置全局安装了 jest。然后在某一时刻,我从全局卸载了 jest(因此丢失了全局配置),但不记得将本地配置添加到我正在谈论的项目中。

在调试以尝试运行测试时,我对节点模块进行了核对并进行了全新安装。

只有在添加了一个 jest.config 并设置了 no cache 选项之后,它才最终解决了。

总之:

  • 如果您没有全局安装 jest,请确保为您的项目设置一个 jest 配置。
  • 使用 cli 设置配置后,返回并手动检查您选择的所有选项,并修改 cli 未提示的选项。
于 2021-06-12T22:18:50.970 回答
2

就我而言,这是因为我在 VS 代码中使用了一个 jest 插件,并且启用了自动保存。所以,jest跑了太多次就挂了。

删除 /tmp/jest_rs 解决了我的问题。

于 2020-02-26T08:13:25.697 回答
1

我有一个类似的问题。我的大部分测试都在运行,但一个套件一直在运行并且从不出错。

事实证明,我的一个 useEffects 中有一个竞争条件。这只会导致笑话不断地运行。

要诊断问题:

注释掉除一个以外的所有测试。继续添加测试,直到找到触发错误的测试。

分析测试以确定哪些代码受到影响。(我的问题原来是在 UseEffect 中。)

识别导致竞争条件的状态对象。

修复:删除它或对您的代码进行条件检查以防止竞争条件

于 2022-01-13T18:03:06.083 回答
1

我有同样的问题,测试通过,然后挂起,CI 也挂起。我偶然发现--forceExit,它为我修复了它。

于 2020-10-01T23:37:50.147 回答
0

在我的情况下,将nodejs从旧版本(即12.16.1)更新为更新的版本(例如14.17.3),然后重新安装 jest(npm install jest -g)完全解决了这个问题。

于 2021-12-29T11:04:54.837 回答
0

就我而言,我尝试了互联网上的所有方法,唯一的解决方案是设置isolatedModules: true(我明确将其设置为 false)。

于 2020-11-03T06:39:31.473 回答
0

我已经通过修改我的 .babelrc 来解决这个问题

{
 "presets": ["@babel/preset-env", "@babel/preset-react"],
 "plugins": [
   [
     "styled-jsx/babel",
     {
       // "plugins": ["styled-jsx-plugin-postcss"]
     }
   ]
 ]
}
于 2020-04-25T12:34:34.883 回答