Запуск Cypress через CircleCi - PullRequest
       116

Запуск Cypress через CircleCi

0 голосов
/ 22 апреля 2020

Cypress отлично работает на местном уровне. Когда я пытаюсь запустить его в конвейере circle-ci, возникает ряд проблем. Во-первых, вот соответствующая часть моего рабочего процесса:

orbs:
  cypress: cypress-io/cypress@1.19.2
workflows:
  version: 2.1
  commit:
    jobs:
      - cypress/install:
          install-command: 'npm install --no-optional --unsafe-perm'

      - cypress/run:
          requires:
            - cypress/install
          start: 'lerna run start --parallel'

Когда я просматриваю операции в circle-ci, он успешно компилируется, но сразу отменяет

project/applicable-folder: ℹ 「wdm」: Compiled successfully.


Build was canceled

и в процессе сборки Я заметил эту строку

project/applicable-folder: Failed to load /root/project/.env.

.env абсолютно там.

npx cypress run после этого работает, но все тесты не пройдены, так как даже тест для cy.visit('/'); не удается.

Почему файл env не был успешно доступен? Я пропускаю шаг, который позволяет это запустить? Я даже должен позволить этому бежать? Я не уверен, что делать дальше.

Я также пытался использовать сборку вместо запуска, но это не работает лучше.

Я также использовал ручную стратегию:

test: e2e: docker: - image: docker -изображения: - checkout - restore_cache: keys: - v2-deps - {{.Branch}} - {{checkum "" package-lock. json "}} - v2-deps - {{.Branch}} - - v2-deps- - выполнить: npm ci - save_cache: ключ: v2-deps - {{.Branch}} - {{контрольная сумма" package- lock. json "}} пути: - ~ /.npm - ~ / .cache - run: name: запустить команду пользовательских приемочных тестов: npm run cy: run

Это приведет к требование для установки Xvfb.

Будет ли это означать, что он должен работать при условии, что он установлен? Я предпочел бы, чтобы версия orb работала.

РЕДАКТИРОВАТЬ: я опробовал библиотеку start-server-and-test.

сценарии выглядят следующим образом

"cy:pipeline": "start-server-and-test up http-get://localhost:8080 cy:run"
"cy:run": "cypress run --headless --record"
"up": "lerna run start --parallel"

Новый Cypress / Run

  - cypress/run:
      requires:
        - cypress/install
      record: true
      command: 'npm run cy:pipeline'

Но я получаю те же ошибки,

Ответы [ 3 ]

0 голосов
/ 22 апреля 2020

Я думаю, что сервер разработки веб-пакетов немедленно завершает работу, это react-scripts случайно?

0 голосов
/ 25 апреля 2020

Решение было простым.

Все, что мне нужно было сделать, это переместить команду установки с cypress/install на cypress/run.

  - cypress/install

  - cypress/run:
      requires:
        - cypress/install
      start: 'lerna run start --parallel'
      install-command: 'npm install --no-optional --unsafe-perm'
0 голосов
/ 22 апреля 2020

Попробуйте посмотреть эту отличную презентацию на официальном канале circleci youtube по интеграции кипарисов, это должно быть полезно для решения вашего вопроса

...