在我的本地PC上,我可以运行“ npm test”命令而不会出现任何错误。但是当我将功能分支推送到Github时,Circleci无法运行我的测试,并最终出现类似
的错误sh: 1: jest: not found
npm ERR! Test failed. See above for more details.
Exited with code 1
我正在使用这个Circleci config.yml文件,但它不起作用:
version: 2.1
jobs:
build:
docker:
- image: circleci/node:10.1.0
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
- v1-dependencies-
- run: npm install
- save_cache:
key: v1-dependencies-{{ checksum "package.json" }}
paths:
- node_modules
test:
docker:
- image: circleci/node:10.1.0
steps:
- checkout
- run:
name: Test
command: npm test
- run:
name: Generate code coverage
command: './node_modules/.bin/nyc report --reporter=text-lcov'
- store_artifacts:
path: test-results.xml
prefix: tests
- store_artifacts:
path: coverage
prefix: coverage
workflows:
version: 2.1
build_and_test:
jobs:
- build
- test:
requires:
- build
如果我改用此config.yml,则它可以正常工作:
version: 2.1
jobs:
build:
docker:
- image: circleci/node:10.1.0
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "package.json" }}
- v1-dependencies-
- run: npm install
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ checksum "package.json" }}
- run: npm test
我想知道为什么第一个config.yml文件不起作用?有什么线索吗? 谢谢大家。
答案 0 :(得分:1)
在第一个配置中,您正在npm test
作业中运行test
。您需要安装Jest,但从未安装过,因此失败。
在第二个配置中,运行npm test
之前,首先运行npm install
,我假设这是安装Jest。
虽然您确实在第一个配置中运行npm install
,但它是在build
作业而不是test
作业中运行的。两个不同的作业,意味着两个不同的容器。他们彼此无关。