Обходные пути для ошибок скрипта сборки Android

#android #ant #continuous-integration

#Android #ant #непрерывная интеграция

Вопрос:

Android предоставляет систему для автоматической генерации скриптов сборки для тестового проекта. Довольно круто … с этим связано всего две проблемы.

  1. Сборка всегда утверждает, что выполнена успешно, когда тесты завершаются неудачей.
  2. Тесты требуют, чтобы вы запустили эмулятор перед запуском run-tests целевого объекта; сценарии не предоставляют способа автоматического запуска / остановки эмулятора.

Вы на самом деле используете тестовые скрипты Android? Если да, то как вы обходите эти проблемы? Вы оставляете эмулятор включенным постоянно? Читал журналы сбоев сборки? Существуют ли другие обходные пути, о которых мне нужно знать?

Ответ №1:

Мы широко используем скрипты сборки ant для наших проектов Android и настраиваем скрипты ant. Если вы заглянете в папку /tools / ant, вы увидите файл с именем main_rules.xml (доступно с Android 2.3, я думаю). Это основной файл, в котором есть все цели для выполнения сборок, включая запуск эмулятора. Что вам нужно сделать, так это выборочно извлекать целевые объекты в ваш build.xml запишите и измените их в соответствии с вашими собственными потребностями.

Выполнение этого способа позволит вам настроить практически все для сборок. Это, скажем, задача на 2-3 дня, но преимущества многообразны. Это также помогает разработчикам больше узнать о том, как создается приложение, что всегда хорошо.

Комментарии:

1. Будьте готовы пересматривать свои изменения каждый раз при обновлении Android SDK.

2. Я делал это уже по крайней мере дважды, болезненно, но это позволяет нам иметь сложную систему выпуска.

3. Таким образом, вы в основном просто исправляете ошибки в своих скриптах. Я думаю, это работает. Я, вероятно, не буду делать это таким образом (я думаю, что я учусь в направлении плагина Android Maven), но приятно знать, что это возможно.

4. На самом деле это не ошибки в их скриптах, они изменили кучу имен целей, добавили поддержку proguard, добавили цели отладки, выпуска. В этом контексте Google преуспел. Мне не пришлось менять скрипты для версий Android 2.3 и 3.0, поэтому давайте надеяться, что они решили, что он достаточно стабилен 🙂