Какие основные методы запуска тестов в Cypress и как они работают
Что проверяют
Работали ли вы с Cypress в реальном конвейере, а не только кликали тесты в окне. Следом обычно спрашивают, как запустить часть тестов в CI и как ускорить прогон.
Как отвечать
Два режима и способы сузить запуск:
npx cypress open: интерактивный режим. Открывается Launchpad, где выбирают тип тестов (E2E или компонентные) и браузер. Спеки перезапускаются при сохранении файла, а в журнале команд можно вернуться к снимку DOM на любом шаге. Режим для написания и отладки;npx cypress run: прогон без интерфейса для CI. По умолчанию браузер Electron в headless-режиме, другой задают через--browser chromeили--browser firefox, окно показывают через--headed. Код выхода равен числу упавших тестов, поэтому CI сам ловит падение. Скриншоты при падении снимаются по умолчанию, видео с 13-й версии выключено и включается опциейvideo;- выбор спеков:
--spec "cypress/e2e/auth/*.cy.ts", компонентные тесты через--component; - конфигурация: с 10-й версии это
cypress.config.tsсdefineConfig(), внутри блокиe2eиcomponentсbaseUrlиspecPattern. Переопределения на запуск идут через--config,--envи--config-fileдля разных стендов; - скрипты:
"test:e2e": "cypress run"вpackage.json, чтобы команда в CI и у всех разработчиков была одной; - в коде:
it.onlyиdescribe.skipдля отладки, теги через плагин@cypress/grep, повторы черезretriesс отдельными значениямиrunModeиopenMode.
Для CI полезно назвать готовые Docker-образы cypress/included и официальный GitHub Action. Параллельный запуск через --parallel работает только вместе с --record и Cypress Cloud.
Где спотыкаются
Рассказывают про cypress.json и папку cypress/integration. Их убрали ещё в 10-й версии, и интервьюер понимает, что вы давно не открывали Cypress.
Оставляют it.only в коммите. В CI прогоняется один тест, конвейер зелёный, а остальные тесты молча пропущены.
Ждут от cypress run запуска в Chrome, а получают Electron, и баг, который воспроизводится только в Chrome, проходит незамеченным. Браузер в CI нужно указывать явно.