Search Unity

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

, 26 июня, 2015

Это история о том, как мы используем  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.

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

I have questions posted in the forums for Cloud Build, but they’ve yet to be answered. Are there any Unity people assigned to checking that forum?

Thanks :D

I wish that Cloud Build would be available for Win/Mac/Linux stand alone builds…

Oh, and I wish that the Cancel button would actually work. :-P

I enjoy using the Cloud Build and am looking forward to the cloud services as they continue to evolve. Are there plans to write an article later on regarding automated testing of a Unity game using one of the testing automation services? Would be interested in reading more detail on how it gets pulled into the mix and if Unity Test Tools are involved. Thanks!

If bandwidth is a concern, you can download the resulting .ipa or .apk file from Cloud Build once, and then distribute it to your teammates via some other means, like a local LAN copy.

For Xcode project manipulation, we recommend you use Unity’s Xcode API, which is well-supported in Cloud Build. The source code is shared here: https://bitbucket.org/Unity-Technologies/xcodeapi

Cheers,
Patrick

The only problem i see with Unity Cloud is related with bandwidth.
If your build has a size of 300mb (for example) and you have to download it in every single device, i am sure isn’t going to like to the IT guys.
Another problem could be when you have to do some manual steps in your Xcode project, which usually is needed with some plugins. I think there isn’t any good solution for this, except trying to avoid plugins which requires manual integration :P.

Comments are closed.