Примеры: e2e
➕ Очень низкий порог входа. Getting started показывает как за пару минут запустить свои первые тесты
➕ Удобное приложение с репортингом, можно подробно посмотреть что происходило, какие элементы были найдены, что пошло не так
➕ Подробная документация
➕ Код не превращается в сплошные await
➕ Chainable дизайн лично мне нравится больше. К тому же он расширяем
➖ Не понятно как нормально запускать сервер через сам Cypress. На сайте вообще написано
Anti-Pattern: Trying to start a web server from within Cypress scripts with cy.exec() or cy.task()
➖ По сути вшит Mocha
. Когда у тебя проект с Jest
, то ты либо вынужден перейти, либо писать на 2х фрейморках. Но есть ишуя на гитхабе, может в будущем это будет исправлено
➖ Нет поддержки WebKit
➖ Нельзя запустить тесты сразу для нескольких браузеров
➕ Сервер можно нормально запустить перед Playwright
тестами автоматически
➕ Есть поддержка WebKit
➕ Можно запустить тесты сразу для нескольких браузеров
➕ Не зависит от тест раннера (Например, интегрируется с Jest
)
➖ Все в чертовых await
➖ Порог входа выше. В Getting started рассказано как написать тест, но ничего о том, как запустить. Для Jest
есть какой-то ‘плагин’, но я убил кучу времени, чтоб завести его в своем проекте
➖ Довольно бесполезный фронт раннера
➖ Селекторы более громоздкие
➖ Тесты долго работают (может дело в Jest-плагине
)
Хотя концепт фреймворков очень похож, они мне показались совершенно разными. Работа с ними организована крайне непохоже. Cypress лучше подойдет для новичков, потому что с ним проще разобраться. Но, наверное, отсутствие WebKit
является большой преградой для полноценных проектов. Вообще Cypress выглядит менее гибким, поэтому в проде его использовать проблемно
Мне не нравится ни тот, ни другой фреймворки, но Cypress
импонирует больше из-за низкого порога входа и красивого кода тестов