Skip to content

Миграция с Cypress на Playwright#72

Merged
mxseev merged 20 commits intomainfrom
feature/act-1079/playwright
Feb 8, 2022
Merged

Миграция с Cypress на Playwright#72
mxseev merged 20 commits intomainfrom
feature/act-1079/playwright

Conversation

@mxseev
Copy link
Copy Markdown
Contributor

@mxseev mxseev commented Feb 3, 2022

Описание изменений

  • Удален Cypress
  • Инициализирован и настроен Playwirght
  • Написан базовый smoke тест
  • Написан обычный тест страницы (посредством POM)
  • Написан snapshot (screenshot) тест
  • Добавлен Github Action для запуска Playwright
  • Написана минимальная документация по тестированию

Обратить внимание

Playwright запускается в Github Actions на дорогом macos-11

Это сделано из-за того, что в названия файлов snapshot'ов Playwright дописывает названия ядра системы (в нашем случае -darwin). Но, если мы запустим тесты на другой системе (например Линуксе в GA), то он не увидит эти скрины и завалит тест (потому что будет искать скриншоты -linux).

Отключить это нельзя.

Есть несколько вариантов решения проблемы:

  1. Так как мы все и так на Маках, то и тесты в GA запускаем на Маках (простой, но дорогой способ)
  2. Запускать Playwright в докере (даже при локальном тестировании)
  3. Делать костыль, который после тестов будет копировать скрины под все платформы (cp snapshot-darwin.png snapshot-linux.png)

Чеклист

  • Всё проверено перед публикацией PR

@mxseev mxseev self-assigned this Feb 3, 2022
@vercel
Copy link
Copy Markdown

vercel Bot commented Feb 3, 2022

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/gooditworks/base-frontend/9LF56qoBN9rTpdf6iECwSckgECdR
✅ Preview: https://base-frontend-git-feature-act-1079playwright-gooditworks.vercel.app

@mxseev mxseev marked this pull request as ready for review February 7, 2022 06:11
@neoromantic
Copy link
Copy Markdown
Contributor

Делать костыль, который после тестов будет копировать скрины под все платформы (cp snapshot-darwin.png snapshot-linux.png)

Имхо самый простой и разумный вариант. Делается же элементарно на уровне GA Actions.

Запускать тесты на macOS — будет очень очень дорого, это не годится и не масштабируемо для нас.

@neoromantic
Copy link
Copy Markdown
Contributor

Еще увидел чей-то чужой PR такой: process-analytics/bpmn-visualization-js#1709

А у нас как? Через jest запускается или отдельно? Прочти этот PR, там вроде много умного.

@mxseev
Copy link
Copy Markdown
Contributor Author

mxseev commented Feb 7, 2022

Имхо самый простой и разумный вариант. Делается же элементарно на уровне GA Actions.

Ага, таких страшных однострочников на баше я ещё не видел. Тем не менее всё таки нашел способ заставить Playwright не писать платформу в имени файлов:

// force Playwright for same screenshot filenames on various platforms
test.beforeEach(({page}, testInfo) => {
  // eslint-disable-next-line no-param-reassign
  testInfo.snapshotSuffix = "multi_platform"
})

А у нас как? Через jest запускается или отдельно?

Отдельно

Прочти этот PR, там вроде много умного.

Умного много, полезного (нам) не очень

@mxseev
Copy link
Copy Markdown
Contributor Author

mxseev commented Feb 7, 2022

Тем не менее, тест всё равно падает из-за разных шрифтов на разных платформах. Установка одного шрифта (из Google Fonts) не помогает, вероятно не успевает прогрузится.

Потом разберусь, не сейчас

@mxseev
Copy link
Copy Markdown
Contributor Author

mxseev commented Feb 8, 2022

Не разобрался. Походу он не зря дописывают платформу в имя скриншота, ибо даже с одинаковыми шрифтами страницы отличаются на разных платформах микро-оступами, достаточными для провала тестов. Помогает только сильное повышение threshold, что делает эти тесты почти бессмысленными.

Пока отключил (но не удалял) GA. Пока хватит того, что он запускается в pre-push

@mxseev mxseev merged commit 213a841 into main Feb 8, 2022
@mxseev mxseev deleted the feature/act-1079/playwright branch February 8, 2022 13:25
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants