我在GitHub操作中有一个管道,它暗示尽管它在本地工作,它还是找不到Jest。
如果我在本地运行npm run unit-tests,它可以正常工作,但是在CI中我得到以下错误:
> jest --group=unit --coverage --verbose
/tmp/unit-tests-2f311f40.sh: 1: jest: not foundname: staging-pipeline
on:
push:
tags:
- 'v*-staging'
env:
CI: true
NODE_ENV: production
jobs:
unit-test:
name: unit-test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Unit Tests
run: |
npm install
npm run unit-tests{
"name": "app",
"version": "1.0.0",
"description": "app",
"main": "",
"scripts": {
"ts-node": "ts-node",
"test": "jest",
"unit-tests": "jest --group=unit --coverage --verbose",
"prisma-generate": "npx prisma generate && npm install @prisma/client"
},
"dependencies": {
"@prisma/client": "^4.3.1",
"axios": "^0.27.2",
"axios-retry": "^3.3.1",
"dotenv": "^16.0.2",
"mongodb": "^4.9.1",
"qs": "^6.11.0",
"winston": "^3.8.1",
"zod": "^3.18.0"
},
"devDependencies": {
"@types/aws-lambda": "^8.10.102",
"@types/jest": "^29.0.0",
"@types/node": "^18.7.15",
"@types/qs": "^6.9.7",
"@typescript-eslint/eslint-plugin": "^5.36.1",
"@typescript-eslint/parser": "^5.36.1",
"esbuild": "^0.15.7",
"eslint": "^8.23.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"jest": "^28.1.3",
"jest-mock-extended": "^2.0.7",
"jest-runner-groups": "^2.2.0",
"json-schema-to-ts": "^2.5.5",
"prettier": "2.7.1",
"prisma": "^4.3.1",
"ts-jest": "^28.0.8",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.1.0",
"typescript": "^4.8.2"
},
"author": "",
"license": "MIT"
}发布于 2022-09-06 13:14:33
原因是您在本地机器上安装了jest全局命令,因此Jest命令可以在本地机器上使用,而在Github操作环境(容器)中则不适用,因此您必须用方法来修复它:
1.将jest安装在Github动作环境中。
jobs:
unit-test:
name: unit-test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Unit Tests
run: |
npm install
npm install -g jest
npm run unit-tests2.或者在您的package.json文件中,将npm run unit-test更改为./node_modules/.bin/jest --group=unit --coverage --verbos以读取,我推荐第二种方法。
发布于 2022-09-06 14:21:17
您可以在我的CI中看到,我有以下变量
NODE_ENV: production这导致npm只安装依赖项,而不安装devDependencies。当我删除这个env变量时,它就可以安装jest并正常使用它。
https://stackoverflow.com/questions/73622016
复制相似问题