Искать на сайте Unity

ИСПОЛЬЗУЕМ UNITY CLOUD BUILD ДЛЯ ТЕСТИРОВАНИЯ БОЛЬШИХ ПРОЕКТОВ

26 июня 2015 г. через Engine & platform | 5 мин. читать
Охваченные темы
Поделиться

Is this article helpful for you?

Thank you for your feedback!

Это история о том, как мы используем  Unity Cloud Build внутри и как это решение может облегчить вашу жизнь, а также жизнь ваших пользователей. Узнайте, как мы работаем над тестированием больших проектов и какие потрясающие возможности теперь доступны!

Давным-давно

Во время разработки огромного релиза Unity 5 и всего того, что он за собой повлек, мы часто сталкивались с вопросами в рамках больших и важных проектов. Для Unity 5 мы хотели API фильтр, что в некоторых случаях означало, что пришлось бы нарушить обратную совместимость. Часто при импортировании старых проектов в Unity 5 мы были вынуждены исправлять скрипты вручную. Мы также сталкивались с серьезными багами и регрессией в графике, физике и производительности.

Наши тестировщики делают отличную работу, чтобы убедиться в том, что проект импортируются, создаются и запускаются так, как надо в каждом новом билде на всех поддерживаемых нами платформах. Но так как мы ограничены во времени, мы обычно использовали небольшие проекты (такие как AngryBots или Nightmares), чтобы проводить тестирование. Такие проекты не используют многие из функций Unity, каждая из которых может неправильно работать в следующей версии. И они отстают по размеру и сложности от многих проектов, которые разрабатывают наши пользователи.

Нам повезло, что несколько крупных студий делятся с нами полными папками своих проектов (например, Republique), и мы вручную импортируем и создаем эти игры в каждом новом билде на стадии беты и релиз-кандидата. Мы нашли и исправили множество проблем до того, как с ними столкнулись наши пользователи, но это была непростая и весьма затратная по времени задача.

Вот как тогда работало тестирование:

  1. Установить новый Unity билд на Windows и OSX.
  2. Открыть большой проект и реимпортировать его. Ждать достаточно долго и время от времени проверять, закончился ли импорт (зачастую Script Updater требует подтверждение, что означает, что надо будет еще подождать).
  3. Проверить каждый скрипт и создать отдельно игру под Mac и Windows.
  4. Переключить платформу на Снова долго ждать и время от времени проверять готовность.
  5. Запустить игру на
  6. Переключиться на iOS. Снова подождать.
  7. Запустить игру на
  8. Повторить шаги 2-7 для всех больших проектов, которые у нас есть (7 в общей сложности).

Все это обычно выполнялось одним человеком и могло занимать по несколько дней.

Славное настоящее

Мы очень быстро начали обсуждать, как мы можем автоматизировать хоть что-то из всего этого. Пока мы разбирались с этим, в другой части нашей компании шла активная работа над тем, что теперь является Unity Cloud Build. Cloud Build выглядит крайне привлекательно для автоматизации тестирования крупных проектов.

Быстро возвращаемся в наши дни. После того мы выпустили Unity 5.1, а затем вышел и Cloud Build, тестирование крупных проектов пошло с использованием совершенно других процессов (как это выглядит, представлено ниже):

1. Добавить проект в  Cloud Build
2. Нажать build для всех поддерживаемых платфоом  (в настоящее время  Webplayer, Android и  iOS собираются отдельно, WebGl в планах)
3_receive_notification
3. Получить по e-mail сообщение из Cloud Build, когда все будет закончено
4. Поделиться ссылкой на билд со всеми/тестировщиками, открыть ссылку в браузере, запустить и наслаждаться!

Это позволяет нам сохранить много времени, так как билд можно сделать буквально в несколько кликов и при этом билдить все проекты параллельно. Как только билды готовы, мы получаем сообщение по e-mail, и можем начать тестирование на всех платформах. Если во время импорта или сборки билда что-то идет не так, мы также получаем сообщение и можем сразу отреагировать.

Unity Cloud Build также можно сконфигурировать, чтобы автоматически учитывать репозиторий для изменений и автоматической пересборки поектов. Он может пересобирать проекты для каждой поддерживаемой версии Unity.

Блестящее будущее

Мы хотим иметь возможность масштабироваться, чтобы тестировать больше проектов, но есть и лимитирующий фактор – запуск билдов на устройствах. Чем больше проектов у нас есть в Unity Cloud Build, тем больше билдов нам нужно устанавливать и запускать на устройствах.

Самой большой проблемой тестирования на мобильных устройствах является их очень большое разнообразие (особенно на Android), и у нас есть возможность проводить тестирование лишь на нескольких самых популярных моделях. Мы хотим знать, как билды запускаются на больше устройств (включая даже достаточно экзотические). We would like to know how these builds run on most devices (including some of the more esoteric ones). С этой целью мы изучаем сервисы, такие как TestDroid и AppThwack.

Эти сервисы дают нам доступ к сотням устройств, и мы можем запускать наши проекты на любом из них. Они предлагают REST API, который мы можем использовать, чтобы переносить билды из Unity Cloud Build напрямую в них. Что мы получаем взамен – это данные производительности (CPU, память, многопоточность), скриншоты игры во время ее работы на устройстве, возможность запускать кастомные тестовые скрипты, получать логи устройств и многое другое.

Загружая все эти данные в наше хранилище данных, мы можем отслеживать метрики для всех версий Unity, проектов и устройств и быстро обращать внимание на производительность, рендеринг и ввод.

Example test run results from our Doll Demo project on TestDroid

Unity Cloud Build и вы

Unity Cloud Build – это вопрос нашего выбора, когда речь заходит о трудоемких задачах и затруднениях при импортировании проектов в новейшие билды Unity, переключение платформ и создании проектов. Но мы, в первую очередь, создаем Unity Cloud Build, помня именно о вас, наших пользователях. Если вы только начинаете новый Unity-проект, попробуйте Cloud Build бесплатно и убедитесь сами, насколько приятно, что мы делаем за вас тяжелую работу, и как легко делиться финальной сборкой с членами вашей команды. Если вы ветеран в работе с Unity, вы обязательно найдете для себя что-то подходящее в одном из вариантов лицензий.

Итак, что вы еще ждете? Попробуйте Unity Cloud Build! Возможно, это самое лучшее, что случилось с вами с тех пор, как мы внедрили кнопку Cancel Build.

26 июня 2015 г. через Engine & platform | 5 мин. читать

Is this article helpful for you?

Thank you for your feedback!

Охваченные темы
Связанные публикации
Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.