Перси не бегает по кругу (без кипариса)

#cypress #circleci #orb #percy

Вопрос:

Я пытаюсь получить Percy.io чтобы сделать снимки простого теста, написанного на Cypress, построенного в CircleCI. Однако «сборки» отображаются как неудачные на панели мониторинга Percy, несмотря на прохождение теста/сборки в CircleCI. В тестовом бегуне Cypress он показывает «Перси не работает», где размещены мои снимки.

Я следил за учебниками на сайтах Percy и Cypress. Я могу заставить Перси работать локально, запустив percy exec — cypress run, но конфигурация CircleCI не запускает Cypress с помощью команды cypress run, она запускает ее через сферу cypress.

Похоже, что два шара, Кипарис и Перси, не знают о существовании другого.

Вот мой конфигурационный файл CircleCI:

 version: 2.1
orbs:
  node: circleci/node@4.5.1
  cypress: cypress-io/cypress@1.28.0
  slack: circleci/slack@4.4.2
  percy: percy/agent@0.1.3
  

workflows:
  version: 2
  commit-workflow:
    jobs:
      - cypress/run:
          name: Smoke Tests
          record: true
          store_artifacts: true  
          spec: cypress/integration/E2E/*
          post-steps:
            - store_test_results:
                path: test-results
            - slack/notify:
                channel: general
                event: fail
                template: basic_fail_1
                mentions: '@Jac'
            - slack/notify:
                channel: general
                event: pass
                template: basic_success_1
                mentions: '@Jac'   
      - percy/finalize_all:
            requires:
              - Smoke Tests
 

На этапе запуска тестов Cypress не упоминается о Перси, поэтому я предполагаю, что он просто не работает — что, несмотря на использование сферы Перси, мне не хватает какой-то конфигурации?

Ответ №1:

Извините, я продолжаю находить ответы на свои вопросы после публикации в Stack Overflow! Я, очевидно, недостаточно хорошо знаю свойства cypress/run. Но, по сути, существует пользовательское свойство command-prefix, которое может быть добавлено с целью изменения команды, используемой для запуска cypress. На самом деле, Перси-это пример, используемый в документах Cypress.

Конфигурация теперь выглядит так:

 version: 2.1
orbs:
  node: circleci/node@4.5.1
  cypress: cypress-io/cypress@1.28.0
  slack: circleci/slack@4.4.2
  percy: percy/agent@0.1.3
  

workflows:
  version: 2
  commit-workflow:
    jobs:
      - cypress/run:
          name: Smoke Tests
          record: true
          store_artifacts: true  
          spec: cypress/integration/E2E/*
          command-prefix: npx percy exec -- 
          post-steps:
            - store_test_results:
                path: test-results
            - slack/notify:
                channel: general
                event: fail
                template: basic_fail_1
                mentions: '@Jac'
            - slack/notify:
                channel: general
                event: pass
                template: basic_success_1
                mentions: '@Jac'   
      - percy/finalize_all:
            requires:
              - Smoke Tests