O libroAndroid Application Testing Guide de Diego Torres Milano é unha excelente guía para achegarse ao mundo do “testing”, neste caso baixo a tecnoloxía Android. Os seus primerios capítulos fálanos de como os “bugs”’ poden afectar seriamente aos nosos proxectos e de porqué, que, como e cando testear. Indicanos que tipo de tests existen e preséntanos un “framework” de testeo de Android. O libro o debemos seguir ao mesmo tempo que facemos lectura do código fonte. Nun principio aproxímanos aos test unitarios e aJunit a través dun pequeno proxecto, e fai mostra da execución dos test desde oIDE Eclipse, desde o emulador e desde a liña de comandos.


TemperatureConverter executándose no emulador Android en local.
Unha vez en marcha o proxecto, TemperatureConverter, no emulador ou dispositivo real, lanzamos un dos test a nivel local e vemos os resultados:
Despois de explicar o “testing” o libro entra no mundo da integración continua. En concreto mostra como montar unha aplicación Android manualmente coa tecnoloxía Ant, facer uso dun repositorio Git e levar a cabo a integración continua con Hudson, que é o pai de Jenkins. Decidín montar este entorno exposto no libro: Ant, Android, Git e Hudson, co único cambio do software de integración continua -en vez do Hudson o Jenkins-, o servidor de xeoPesca dispón dun repositorio Git e ten instalado o Jenkins. Tiven que facer uso do comando android para convertir o proxecto a tecnoloxía Ant, o arquivo build.xml foi creado: $ cd <path/to>/TemperatureConverter $ android update project –path $PWD –name TemperatureConverter No libro se deron os pasos para empregar un emulador predeterminado e lle foi indicando a Ant o nome do mesmo, eu omitín eses pasos. O proxecto TemperatureConverterTest seguiu un porceso similar de conversión: $ cd /TemperatureConverterTest $ android update test-project –path $PWD –main <path/to>/ TemperatureConverter Até agora todo o feito foi a nivel local, pero agora toca subir o código ao repositorio Git, como as probas de test vainas a levar a cabo o Jenkins instalamos nel un plugin do emulador Android que supostamente instala automaticamente o SDK. Nun principio non foi así e tiven que facelo manualmente. Finalmente, no momento en que realizaba probas, o Jenkins fixo a instalación do SDK tal e como estaba previsto fora de prazo e sen previo aviso. Tiven que retirar a instalación previa do SKD. Para adaptar o entorno android tiven que facer uso da liña de comandos, agora o SDK atópase no servidor e non o usamos a nivel local onde os IDE simplifican o seu uso. Tiven varios contratempos, non sempre coinciden as explicacións do libro co entorno real, tomei nota de todo por si no futuro fora de axuda. Un dos maiores problemas que topei foi un ‘bug’ que a día de hoxe non está solucionado, tiven que procurar na rede e atopar unha solución temporal. Polo resto indiqueille ao Jenkins a situación do código no repositorio Git e despois configurei as dúas aplicacións para poder levar a cabo as probas de ‘testing’.
As configuracións indicadas no libro sobre o Jenkins en algúns casos non son moi exactas, pero a base de facer probas e procuras pola rede vaise chegando ao obxectivo.

Configuración no Jenkins do TemperatureConverterTest
Ao Jenkins se lle ten que indicar a situación de TemperatureConverter e TemperatureConverterTest. Desde a configuración do proxecto TemperatureConverterTest, se ten que indicar que o proxecto a testear é TemperatureConverter. Que durante a construción do proxecto tense que executar como un emulador Android e indicarlle as propiedades do mesmo, e finalmente anótanse os comandos Ant é unha serie de variables e comandos para a execución dun “script”.
Cando falei do código, indiquei que existe unha clase que vai a dar soporte para poder publicar os datos dos tests no Jenkins, debemos facer uns cambios tamén no AndroidManifest.xml, en concreto:
<instrumentation android:targetPackage=“com.example.aatg.tc” android:name=“com.neenbedankt.android.test.XMLInstrumentationTestRunner” />
Estes cambios imposibilitan os test a nivel local pero habilitan o entorno no servidor.
Pódese apreciar no apartado “Proxectos downstream” a relación establecida entre os dous proxectos.
A nivel local no Eclipse contamos con un rexistro “LogCat”, podemos ver que no servidor non perdemos esta funcionalidade, logcat.txt
Agora podemos seguir a traballar sobre o código , a integración continua xunto co TDD van a guiarnos cara a construción dun código mais robusto. O Jenkins permítenos empregar outras tecnoloxías, Maven, Gradle, etc…
O libro Android Application Testing Guide de Diego Torres Milano é suministrado pola editorial Packt xunto ao código fonte https://www.packtpub.com/application-development/android-application-testing-guide .
Autor do artigo: Jose Luis Villaverde
Dúbidas, suxerencias: jlvbalsa@mundo-r.com
GPG key: 07A9C84C