GitHub
Mugshot — скриншот-тесты на основе превью Compose
Вы, вероятно, уже создали @Preview для большинства своих экранов. Mugshot — это библиотека для тестирования на основе скриншотов, которая превращает каждый такой превью-экран в тест: достаточно добавить аннотацию @Mugshot и один раз записать эталонное изображение (golden image), после чего сборка будет падать при любом изменении экрана. Рендеринг экранов происходит в JVM с использованием layoutlib — того же движка, который обеспечивает работу превью в Android Studio, — поэтому тесты выполняются как обычные unit-тесты на любой машине, способной собрать ваше приложение.
Почему стоит Mugshot:
- Не нужно писать отдельные классы тестов или поддерживать актуальность списка экранов. Процессор KSP находит все превью с аннотацией и генерирует тесты автоматически: добавление превью приводит к созданию скриншота, а удаление — к его исчезновению.
- Библиотека работает в модулях Kotlin Multiplatform. Превью в
commonMainподхватываются так же, как и любые другие, а ресурсы Compose Multiplatform (включаяstringResource) корректно отображаются на эталонных изображениях. - Это быстро. В приложении из 30 модулей с 7176 скриншотами Mugshot выполнил проверку за 58 секунд. Paparazzi потребовалось 89 секунд, а решение Google (Compose Preview Screenshot Testing) завершилось с ошибкой нехватки памяти при стандартных настройках. Подробности и репозиторий для самостоятельного запуска теста доступны в бенчмарке.
- Библиотека не создает проблем при настройке Gradle. Тесты со скриншотами выполняются в отдельной задаче и отдельном процессе JVM, поэтому они не конфликтуют с Robolectric, а плагин Gradle поддерживает кэширование конфигурации.
-
Новости4 недели назадВидео и подкасты о мобильной разработке 2026.35
-
GitHub3 недели назадLucide Swift — типобезопасные Lucide иконки с векторным рендерингом
-
Устройства4 недели назадHugging Face представил Microduck — небольшого двуногого робота в форме утёнка
-
Разработка4 недели назадНадежное выполнение фоновых задач в iOS: часть 1
