Pull to refresh

Comments 13

Можно было за пару дней заменить pdf/svg с тенями на png. Рендер векторов всё равно будет глючить - особенности Quartz.

Не очень понимаю о каких pdf/svg вы говорите

Как часто скриншот-тесты у вас показывают ошибки? Какие это ошибки?

  1. Когда лезем и что-то обновляем в компоненте. То случайно констрейнту зацепишь которую не должен был, то приоритеты путаешь. Я прям без запуска приложения таким образом проверяю что всё ок сверстано и новые требования на вьюху не ломают старые.

  2. Когда мажорно обновляется iOS. Обычно просто кернинги в шрифтах меняются, но на некоторых вьюхах что-то может расплыться.

Можете чуть подробнее раскрыть первый пункт? Это как? Вы запускаете тяжелый скриншот-тестинг (который все равно запускает приложение) под все платформы вместо того, чтобы запускать приложение в Xcode? А в чем профит?

Он не тяжелый. Сгенерить сотню скриншотов вьюхи во всех её возможных состояниях, проверить доступность, проверить как эта вьюха в другие интегрируется — меньше секунды.

Это как? Без запуска симулятора? 0_о

У меня обычно симулятор уже запущен.

Запустить на нем тесты и приаттачиться к ним — пара сек. Прогнать скриншот-тесты конкретной вьюхи — десятки миллисекунд.

Я на ютуб ролики про внедрение дайнамик тайпа в Додо Пицце выкладываю, там как раз через скриншот-тесты все идет. Можете посмотреть на скорость сами: https://youtu.be/u3WISkcQhjw

А есть где-то описание (желательно текстовое) как Вы этого добились? Просто я ни разу не видел, чтобы UI-тесты запускались быстрее, чем единицы или десятки секунд.

Плюс мне непонятно, у вас на видео открыт симулятор, при этом в нем нигде нет того компонента, скриншоты которого Вы проверяете. Это как это так работает?

Кажется, я слегка неправильно использовал скриншоты тесты. В моем понимании это выглядело так. Запускается симулятор, открывается нужный экран, делается нужный скриншот. Открывается следующий экран, делается скриншот для него. А это все жутко долго и нестабильно. То, что я увидел на ролике у Вас, мне совсем непонятно.

Вы говорите про стандартные UI-тесты, а статья про ссылка на скриншот-тестирование через вот эту либу. Работает так:

  • пишешь юнит-тест в котором создаешь вьюшку и заполняешь ее данными

  • вызываешь асерт специальный который ее отрендерит

  • сохранит этот скрншот в репозиторий

  • при следующем прогоне сгенерит новый скриншот и сравнит с прошлым прогоном.

Скриншотим мы лишь ячейки и контролы, поэтому файлы получаются маленькие, а скорость у них достаточная чтобы гонять их как юнит-тесты

Понял, спасибо. Из статьи это было не совсем очевидно. Ушел изучать инструмент.

Sign up to leave a comment.