Непрерывная интеграция для Android через TeamCity. Предпочтительные инструменты?
Наша команда новичок в разработке Android и Java (первоначально мы пришли из С++), поэтому наши знания о инструментах сборки для Java довольно мелкие.
Существует несколько инструментов построения, которые можно использовать для автоматизации сборки, и наиболее интересными, которые я нашел, были ant и maven. И хотя есть много статей по автоматизации сборки, я не нашел исчерпывающего учебника по автоматизации процесса интеграции приложений для Android.
Мне было бы очень приятно, если бы вы могли указать свой предпочтительный инструмент сборки для Android и объяснить или дать какие-либо ссылки, объясняющие процесс непрерывной интеграции приложений для Android (которые охватывают не только создание пакета приложений, но и запуск тестов под эмулятором).
Большое спасибо за ваше время и помощь.
P.S.: Мы используем Team City в качестве сервера непрерывной интеграции.
Ответы
Ответ 1
Мы строим платформу непрерывной интеграции для Android, используя следующее:
Maven - для управления циклом build/unit-test/integration-test/deploy
Хадсон - для непрерывного интегрирования
Team City также будет запускать проекты Maven - довольно просто настроить агента TeamCity для запуска определенной цели Maven, например. mvn integration-test
- агент может работать на ПК с эмулятором Android или подключенным к нему настоящим Android-устройством.
В прошлом у меня был целый банк агентов TeamCity, тестирующих разные аппаратные средства. Например, если у вас есть 5 устройств Android, подключенных к агенту, вы можете настроить конвейер сборки TeamCity для запуска тестов интеграции (управляемых легко через Maven) на всех 5 устройствах и только объявлять PASS, когда они передают все 5.
Ответ 2
Ant (http://ant.apache.org/) в значительной степени является стандартом де-факто для создания Java-проектов. Он имеет очень простой в освоении язык сценариев и может даже использоваться для развертывания вашего приложения в нескольких целях.
Для автоматического тестирования большинство разработчиков java используют jUnit (http://www.junit.org/). Несмотря на то, что тесты JUnit не столь же бесшовны, как и в среде Ruby on Rails, тесты jUnit позволяют проводить тестовую разработку.
Maven (http://maven.apache.org/what-is-maven.html) - это скорее мета-программа, которая может использовать скрипты ant и запускать тесты jUnit. Правда, ant также может использоваться для запуска тестов jUnit, но Maven делает все возможное, чтобы собрать все это вместе, а также предоставить дополнительную функциональность (например: возможность автоматически находить внешние зависимости и загружать их).
Пока я не знаком с TeamCity, я был бы удивлен, если бы у него не было возможности интегрироваться с ant/maven/junit.
Удачи!