未找到Circleci笑话?

时间:2019-05-12 15:35:33

标签: docker node-modules circleci circleci-2.0

在我的本地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文件不起作用?有什么线索吗? 谢谢大家。

1 个答案:

答案 0 :(得分:1)

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

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

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