Каждый разработчик интерфейсов долгоживущих сервисов сталкивается с регрессиями в вёрстке. Мы научились пользоваться инструментами для модульного тестирования JS-кода, но до сих пор плохо понимаем, как тестировать на регрессии вёрстку. И ещё хуже понимаем, как делать это автоматически при использовании непрерывной интеграции и при этом писать небольшие и не очень хрупкие тесты.
В этом году мы создали Gemini — инструмент для модульного тестирования вёрстки. Мы используем его для тестирования внутренней библиотеки компонентов Яндекса, которая лежит в основе большинства наших сервисов (например, Поиска и Картинок). Я расскажу, как использовать этот инструмент — как разрабатывать тесты и запускать их при помощи командной строки или графического интерфейса, а также как подсчитать процент покрытия тестами CSS-кода.
2. О чем рассказ
Зачем тестировать верстку?
Как это делать?
Какие есть инструменты для этого?
Почему мы сделали свой?
Как им пользоваться?
Как считать покрытие?
2
35. Сравнение
dpxdt phantom.css Huxley
Разные браузеры ✘ ✘ ✘
Сравнение фрагментов ✘ ✘
Скриншоты в репозитории ✘
Различные состояния ✘
JavaScript ✘ ✘
35
36. WebDriverCSS
Выпущен одновременно с нашим инструментом
Нет «умного» diff
Нет подсчета покрытия
Нет GUI
Не учитывает outline и box-shadow
Есть возможность исключить область
36