#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