#android #test #agent
Делаю приложение-дневник тренировок для андроида, и агент пишет/гоняет ui-тесты на все фичи.
Заметил, что тесты стали занимать около 4 минут на полный прогон, и подумал, можно ли это как-то оптимизировать, кроме банального - не запускать все UI-тесты на каждое изменение в верстке.
Оказалось, можно очень мощно сократить время на прогон UI-тестов нехитрым способом.
На примере приложения "Счётчик дней":
- 63 секунды на все UI-тесты до оптимизации
- 28 секунд на все UI-тесты после оптимизации
Все изменения можно посмотреть в этом коммите.
Секрет успеха: отключаем анимации в эмуляторе.
Знаю, звучит очевидно, но я об этом не сразу вспомнил, пока не заметил, что тесты долго гоняют 😅
—————
На всякий случай напоминаю: когда доверяете работу агенту, предпочтительно делать все задачи в формате TDD (сначала падающие тесты, потом реализация и успешные тесты, потом рефактор).
Даже однострочные правки следует проверять, если задета логика.
Делаю приложение-дневник тренировок для андроида, и агент пишет/гоняет ui-тесты на все фичи.
Заметил, что тесты стали занимать около 4 минут на полный прогон, и подумал, можно ли это как-то оптимизировать, кроме банального - не запускать все UI-тесты на каждое изменение в верстке.
Оказалось, можно очень мощно сократить время на прогон UI-тестов нехитрым способом.
На примере приложения "Счётчик дней":
- 63 секунды на все UI-тесты до оптимизации
- 28 секунд на все UI-тесты после оптимизации
Все изменения можно посмотреть в этом коммите.
Секрет успеха: отключаем анимации в эмуляторе.
Знаю, звучит очевидно, но я об этом не сразу вспомнил, пока не заметил, что тесты долго гоняют 😅
—————
На всякий случай напоминаю: когда доверяете работу агенту, предпочтительно делать все задачи в формате TDD (сначала падающие тесты, потом реализация и успешные тесты, потом рефактор).
Даже однострочные правки следует проверять, если задета логика.