Circleci Jest не найден? - PullRequest
       20

Circleci Jest не найден?

0 голосов
/ 12 мая 2019

На моем локальном компьютере я могу выполнить команду '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 Ответ

1 голос
/ 13 мая 2019

В первом конфиге вы запускаете npm test в задании test. Вам нужно установить Jest, но вы никогда его не устанавливали, поэтому он не работает.

Во втором конфиге, перед запуском npm test, сначала запускается npm install, который, как я предполагаю, устанавливает Jest.

Пока вы запускаете npm install в первом конфиге, он запускается в задании build, а не в задании test. Два разных задания, то есть два разных контейнера. Они не имеют ничего общего друг с другом.

...