【问题标题】:npm test fails in Jenkins but passes in localnpm 测试在 Jenkins 中失败,但在本地通过
【发布时间】:2021-06-02 07:41:45
【问题描述】:

npm 测试失败

出现以下错误

FAIL src/Tests/Workflow.test.js
  ● Test suite failed to run

    ENOENT: no such file or directory, mkdir '/tmp/jest_4df/jest-transform-cache-4e6d562894209be60da269aa86f9333c-d1d5bfaad8659acd06069518d3e76e6c/48'

      at createDirectory (node_modules/jest-util/build/createDirectory.js:68:10)
      at ScriptTransformer._getFileCachePath (node_modules/@jest/transform/build/ScriptTransformer.js:306:37)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:429:32)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25)

FAIL src/Tests/app.test.js
  ● Test suite failed to run

    ENOENT: no such file or directory, mkdir '/tmp/jest_4df/jest-transform-cache-4e6d562894209be60da269aa86f9333c-d1d5bfaad8659acd06069518d3e76e6c/48'

      at createDirectory (node_modules/jest-util/build/createDirectory.js:68:10)
      at ScriptTransformer._getFileCachePath (node_modules/@jest/transform/build/ScriptTransformer.js:306:37)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:429:32)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25)

FAIL src/Tests/AuthenticationForm.test.js
  ● Test suite failed to run

    ENOENT: no such file or directory, mkdir '/tmp/jest_4df/jest-transform-cache-4e6d562894209be60da269aa86f9333c-d1d5bfaad8659acd06069518d3e76e6c/48'

      at createDirectory (node_modules/jest-util/build/createDirectory.js:68:10)
      at ScriptTransformer._getFileCachePath (node_modules/@jest/transform/build/ScriptTransformer.js:306:37)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:429:32)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25)

FAIL src/Tests/Authentication.test.js
  ● Test suite failed to run

    ENOENT: no such file or directory, mkdir '/tmp/jest_4df/jest-transform-cache-4e6d562894209be60da269aa86f9333c-d1d5bfaad8659acd06069518d3e76e6c/48'

      at createDirectory (node_modules/jest-util/build/createDirectory.js:68:10)
      at ScriptTransformer._getFileCachePath (node_modules/@jest/transform/build/ScriptTransformer.js:306:37)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:429:32)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25)

FAIL src/Tests/AuthenticationFormInputField.test.js
  ● Test suite failed to run

    ENOENT: no such file or directory, mkdir '/tmp/jest_4df/jest-transform-cache-4e6d562894209be60da269aa86f9333c-d1d5bfaad8659acd06069518d3e76e6c/48'

      at createDirectory (node_modules/jest-util/build/createDirectory.js:68:10)
      at ScriptTransformer._getFileCachePath (node_modules/@jest/transform/build/ScriptTransformer.js:306:37)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:429:32)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25)

FAIL src/Tests/UserInputForm.test.js
  ● Test suite failed to run

    ENOENT: no such file or directory, mkdir '/tmp/jest_4df/jest-transform-cache-4e6d562894209be60da269aa86f9333c-d1d5bfaad8659acd06069518d3e76e6c/48'

      at createDirectory (node_modules/jest-util/build/createDirectory.js:68:10)
      at ScriptTransformer._getFileCachePath (node_modules/@jest/transform/build/ScriptTransformer.js:306:37)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:429:32)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25)

FAIL src/Tests/UserInputFormField.test.js
  ● Test suite failed to run

    ENOENT: no such file or directory, mkdir '/tmp/jest_4df/jest-transform-cache-4e6d562894209be60da269aa86f9333c-d1d5bfaad8659acd06069518d3e76e6c/48'

      at createDirectory (node_modules/jest-util/build/createDirectory.js:68:10)
      at ScriptTransformer._getFileCachePath (node_modules/@jest/transform/build/ScriptTransformer.js:306:37)
      at ScriptTransformer.transformSource (node_modules/@jest/transform/build/ScriptTransformer.js:429:32)
      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:569:40)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:607:25)

Test Suites: 7 failed, 7 total
Tests:       0 total
Snapshots:   0 total
Time:        3.251 s
Ran all test suites.
npm ERR! Test failed.  See above for more details.
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE

上述问题似乎是缓存中的问题。我尝试使用针对堆栈溢出给出的不同解决方案来解决它,但没有任何帮助。

我尝试使用以下方法解决它 -

  • 删除节点模块文件夹和package-lock json
  • npm 缓存清理 --force
  • npm 缓存验证
  • npm 安装

在我的 package.json 我有这个

{
  "name": "123,
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.11.9",
    "@testing-library/react": "^11.2.5",
    "@testing-library/user-event": "^12.8.1",
    "http-proxy-middleware": "^1.0.6",
    "react": "^17.0.1",
    "react-csv": "^2.0.3",
    "react-dom": "^17.0.1",
    "react-loader-spinner": "^4.0.0",
    "react-promise-tracker": "^2.1.0",
    "react-scripts": "4.0.3",
    "react-select": "^4.1.0",
    "react-select-event": "^5.2.0",
    "react-test-renderer": "^17.0.1",
    "web-vitals": "^1.1.0"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "test:coverage": "react-scripts test --coverage",
    "test:update": "react-scripts test --updateSnapshot"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {}
}


【问题讨论】:

  • 看起来可能是您的节点版本:github.com/facebook/jest/issues/10347
  • 谢谢!是的,我也认为这是由于节点版本的问题。将更新我的 Jenkins 中的节点版本并检查。

标签: node.js reactjs unit-testing npm jenkins-pipeline


【解决方案1】:

我已经解决了这个问题。

Jenkins 使用的是 10.8.0 版本,在我的项目中 Jest 版本是 26。 Jest 26 不支持节点

您将不得不降级您的 jest 版本,否则您将不得不更改您的节点版本。

【讨论】:

  • 这也为我解决了这个问题。我只是在错误(旧)版本的节点上。
猜你喜欢
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
  • 2015-03-26
  • 2019-12-07
  • 2020-05-30
  • 2018-12-18
  • 2022-01-20
相关资源
最近更新 更多