docker - 没有找到Circleci Jest?
问题描述
在我的本地电脑上,我能够运行“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 文件不起作用?对此有任何线索吗?谢谢你们。
解决方案
在第一个配置中,您正在npm test
作业test
中运行。您需要安装 Jest,但您从未安装它,因此它失败了。
在第二个配置中,在npm test
运行之前,npm install
首先运行我假设正在安装 Jest。
虽然您确实npm install
在第一个配置中运行,但它是在build
作业而不是test
作业中运行的。两个不同的工作,意味着两个不同的容器。他们彼此没有任何关系。
推荐阅读
- excel - Excel vba 宏可打开其他 excel 文件并在该文件中运行宏
- java - 如何在计算器上用 Int 显示结果?
- c++ - 我相信 [dcl.typedef]/1 有缺陷,否则我错过了什么?
- pytorch - 用于预测字符的 LSTM:训练循环中的单元状态和隐藏状态
- python - 将 Pandas 数据框转换为每列字典列表的最佳方法
- sql - 两个日期之间的完整日历月
- python - 直方图中的断轴和 Python 中的概率分布
- ios - 如何将核心数据对象分组为 UITableView 的数据源
- node.js - Alexa Smart Home Skill - 需要帮助才能发出 http 请求
- javascript - 在 JavaScript/ES6/ES7 中迭代数组中的嵌套值