2011-04-22 9 views
17

Nuestro equipo es nuevo en el desarrollo de Android y Java (originalmente, veníamos de C++), por lo tanto, nuestro conocimiento sobre las herramientas de compilación para Java es bastante superficial.Integración continua para Android a través de TeamCity. ¿Herramientas preferidas?

Existen pocas herramientas de compilación que se pueden usar para la automatización de compilaciones, y las más interesantes que encontré fueron hormiga y maven. Y aunque hay muchos artículos sobre automatización de compilación, no encontré ningún tutorial completo sobre la automatización del proceso de integración para aplicaciones de Android.

estaría muy agradecido si pudiera indicar su herramienta de construcción preferible para Android y explicar o dar cualquier enlace que explican el proceso de integración continua para aplicaciones de Android (que abarcan no sólo la construcción de paquete de la aplicación, pero la ejecución de pruebas bajo la emulador).

Muchas gracias por su tiempo y asistencia.

P.S .: Estamos utilizando Team City como el servidor de integración continua.

Respuesta

7

Estamos construyendo nuestra plataforma de integración continua para Android utilizando la siguiente:

Maven - para gestionar el/la integración-test/unit-test acumulación ciclo Hudson/desplegar - para la integración continua

Equipo de la Ciudad también ejecutará proyectos de Maven: es bastante sencillo configurar un agente de TeamCity para ejecutar un objetivo de Maven específico, por ejemplo mvn integration-test - el agente podría estar ejecutándose en una PC con un emulador de Android o un dispositivo Android real conectado.

En el pasado he tenido todo un banco de agentes de TeamCity probando contra hardware diferente. Por ejemplo, si tienes 5 dispositivos Android conectados a un agente, puedes configurar la canalización de compilación de TeamCity para ejecutar las pruebas de integración (controladas fácilmente a través de Maven) en TODOS los 5 dispositivos y declarar un PASS solo cuando pasen todos 5.

+0

Gracias por su respuesta. Sí, el Maven con maven-android-plugin ha resuelto con éxito el problema. Además, TeamCity se integra sin problemas. Aún así, me pregunto si podría decirme, ¿hay alguna manera de extraer los registros de las pruebas de instrumentación de Android (que se ejecutan bajo el emulador)? –

+0

Se accede a los registros de Android utilizando el comando "adb logcat": hay varias opciones que puede pasarle (consulte http://developer.android.com/guide/developing/tools/adb.html#logcat). –

+0

Gracias, Matt. Pero aún así, los registros de Logcat incluyen tanta información irrelevante y, además, no es probable que sean analizados por los analizadores de teamcity :(Por lo tanto, me pregunto si existe una forma de generar, por ejemplo, registros Surefire o jUnit. –

2

Ant (http://ant.apache.org/) es prácticamente el estándar de facto para la construcción de proyectos Java. Presenta un lenguaje de scripting muy fácil de aprender e incluso se puede usar para implementar su aplicación en múltiples objetivos.

Para las pruebas automatizadas, la mayoría de los desarrolladores de Java usan jUnit (http://www.junit.org/). Si bien no es tan transparente como el marco de prueba de Ruby on Rails, las pruebas jUnit permiten el desarrollo basado en pruebas.

Maven (http://maven.apache.org/what-is-maven.html) es más que un metaprograma que puede usar scripts ant y ejecutar sus pruebas jUnit. Es cierto que ant también se puede usar para ejecutar pruebas de jUnit, pero Maven hace un buen trabajo al unir todo eso y proporcionar funcionalidad adicional (por ejemplo, la capacidad de encontrar automáticamente dependencias externas y descargarlas).

Aunque no estoy familiarizado con TeamCity, me sorprendería que no tuviera forma de integrarse con ant/maven/junit.

¡La mejor de las suertes!

+0

Gracias por tus comentarios He resuelto el problema como ya lo describí anteriormente: uso de maven para controlar el proceso de compilación y prueba y uso de TeamCity para una integración continua. –

Cuestiones relacionadas