npm 测试在 Jenkins 中失败但在本地通过
npm test fails in Jenkins but passes in local
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
上述问题似乎是缓存中的问题。我尝试使用在堆栈溢出时给出的不同解决方案来解决它,但没有任何帮助。
我尝试使用以下方法解决它 -
- 正在删除节点模块文件夹和包锁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": {}
}
我已经解决了这个问题。
Jenkins 使用的是 10.8.0 版本,在我的项目中 Jest 版本是 26。
Jest 26 不支持节点 <10.14.2.
您将不得不降级您的 jest 版本,否则您将不得不更改您的节点版本。
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
上述问题似乎是缓存中的问题。我尝试使用在堆栈溢出时给出的不同解决方案来解决它,但没有任何帮助。
我尝试使用以下方法解决它 -
- 正在删除节点模块文件夹和包锁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": {}
}
我已经解决了这个问题。
Jenkins 使用的是 10.8.0 版本,在我的项目中 Jest 版本是 26。 Jest 26 不支持节点 <10.14.2.
您将不得不降级您的 jest 版本,否则您将不得不更改您的节点版本。