首页 > 解决方案 > 没有找到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 文件不起作用?对此有任何线索吗?谢谢你们。

标签: dockernode-modulescirclecicircleci-2.0

解决方案


在第一个配置中,您正在npm test作业test中运行。您需要安装 Jest,但您从未安装它,因此它失败了。

在第二个配置中,在npm test运行之前,npm install首先运行我假设正在安装 Jest。

虽然您确实npm install在第一个配置中运行,但它是在build作业而不是test作业中运行的。两个不同的工作,意味着两个不同的容器。他们彼此没有任何关系。


推荐阅读