Interfaz Android robotium pruebas con Teamcity
Como esto no fue contestado (Tal vez no lo encontré) previamente, investigué en la siguiente pregunta:
¿Cómo realizar pruebas funcionales automatizadas en dispositivos Android con robotium, y reportarlos al servidor de integración continua como TeamCity?
- No se puede conseguir que Robotium funcione en Android Studio
- Haga clic en la notificación de Android mediante programación
- No se pudo iniciar intención Intent en un plazo de 45 segundos - robotium
- Enviar Tecla Intro usando robotium para pruebas de Android?
- Prueba de integración de Android: Robotium o UIAutomator?
- ¿Cómo hacer clic en el botón de "búsqueda" del teclado con Robotium?
- ¿Cómo puedo comprobar en Robotium que la aplicación ha terminado?
- Android Espresso prueba el flujo de aplicaciones
- ¿Cómo iniciar el proyecto de Instrumentación mediante programación con Android Intent?
- Atajo de teclado para Ejecutar como -> Android JUnit Test en Eclipse
- ¿Robotium es confiable para probar cuán rápido comienzan las actividades y fragmentos?
- Las pruebas existentes de la interfaz de usuario de Android dejaron de funcionar después de cambiar a AndroidJUnitRunner
- Cómo correctamente mock HttpGet llamada en la prueba de Android
Como no encontré ninguna respuesta sobre esa pregunta específica, investigué. Aquí está el resultado de mi investigación y un rápido How-To para ayudar a la gente a realizar pruebas funcionales automatizadas en aplicaciones Android utilizando robotium y luego reportar los resultados a un servidor de integración continuo como TeamCity. Tenga en cuenta que esto puede no ser la mejor solución, pero sentí que la gente podría estar en la misma situación que yo. Asi que aqui esta !
Se han utilizado las siguientes bibliotecas:
- Robotium ( https://code.google.com/p/robotium/ ): Este es un framework de automatización de pruebas de Android. Le ayuda a realizar pruebas automatizadas como hacer clic en botones, rellenar texto automáticamente y muchas otras cosas.
- Android Junit Report ( http://zutubi.com/source/projects/android-junit-report/ ): Esta biblioteca es muy útil para publicar el resultado de la prueba en un formato xml explotable. Si desea ejecutar sus pruebas a través de Eclipse, verá los resultados de sus pruebas sobre la marcha, pero para exportarlos, esta biblioteca es muy útil
Suponiendo que tiene un proyecto de Android para probar, cree un proyecto de prueba de Android (Eclipse tiene un flujo de trabajo agradable para crearlo para usted) y configurarlo para que funcione con Robotium. Una instrucción detallada bastante clara sobre cómo hacerlo puede encontrarse aquí: https://code.google.com/p/robotium/wiki/Getting_Started
A continuación, debe agregar Android Junit Report a su proyecto para poder obtener los resultados de sus pruebas. Para ello, agregue la librería Android Junit Report * .jar en la carpeta lib y agréguela a su ruta de compilación (en Eclipse: Proyecto -> Propiedades -> Ruta de construcción de Java -> Bibliotecas -> Añadir tar externo ).
También tiene que cambiar el corredor de prueba de su proyecto. En el AndroidManifest.xml de su proyecto de prueba, agregue lo siguiente:
<instrumentation android:name="com.zutubi.android.junitreport.JUnitReportTestRunner" android:targetPackage="<insert your package ex:com.alth.myproject" />
Una vez hecho esto, usted debe ser capaz de ejecutar sus pruebas correctamente. Los resultados de las pruebas deben estar disponibles en su dispositivo (en la siguiente carpeta /data/data//files/junit-report.xml )
El siguiente paso es configurar los pasos de compilación de TeamCity para realizar todas las acciones necesarias para ejecutar las pruebas. Tenga en cuenta que mi solución podría no ser la óptima!
-
Crear paso 1: Limpiar – Línea de comandos runner – Este paso de construcción puede ser opcional dependiendo de cómo decida crear los archivos build.xml y las decisiones de compilación.
rm -rf <report folder> rm -rf <Project build.xml> rm -rf <Test project build.xml> android update project -p <Path to your project> android update test-projecct -m <Path to your project, relative to the test project> -p <Path to your test project>
-
Construir paso 2: Lanzar AVD – Command Line runner – Este paso de compilación inicia el dispositivo virtual android. Este paso puede ser opcional si decide ejecutar las pruebas en un dispositivo real.
emulator -avd <nameOfYourAvd> -no-boot-anim & sleep 45
El & evita la compilación para ser interrumpido por el lanzamiento virtual del dispositivo (es comando básico del shell). El comando sleep se utiliza para intentar dejar que el AVD esté listo para el siguiente paso de construcción
-
Construir paso 3: probar la liberación de la aplicación – Ant runner: Construir el proyecto de prueba, instalarlo en el dispositivo virtual
Path to build xml file : <Path to your test project>/build.xml Additional Ant command line parameters : -f <Path to your test project>/build.xml clean debug install -Dsdk.dir=<Path to your android sdk>
-
Construir paso 4: AVD Desbloquear – Línea de comando runner: Desbloquear la pantalla AVD para fines de prueba
bash avdUnlock.sh
Cuerpo de avdUnlock.sh aquí: ( http://pastie.org/7919761 ). Este script está enviando información en el puerto AVD regular para desbloquear la pantalla. Esto puede mejorarse enviando el comando sólo a un puerto específico y cambiando el paso de construcción 2 para agregar un puerto específico al lanzamiento del emulador. Sin embargo, esto no es realmente parte de este
-
Construir paso 5: Lanzar pruebas – Línea de comando runner: Lanzar las pruebas
adb shell pm list instrumentation adb shell am instrument -w <insert your test package ex:com.alth.myproject.test>/com.zutubi.android.junitreport.JUnitReportTestRunner
Se podría quitar el primer comando adb. Esto es sólo para fines de depuración para ver qué instrumentación se ha instalado en el dispositivo.
-
Generar paso 6: Pruebas de recuperación – Corredor de línea de comandos: Recuperar informe de pruebas del dispositivo
adb pull /data/data/<insert your project package ex:com.alth.myproject>/files/junit-report.xml <report folder>/junit-report.xml
-
Construir paso 7: Emulador final matar – Corredor línea de comandos: Matar el dispositivo virtual android en ejecución
adb emu kill
-
Características adicionales de la construcción: Procesamiento de informes XML – Tipo de informe: Ant JUnit
Monitoring rules : <report folder>/*.xml
Este How-to no es claramente óptimo, pero responde a la pregunta original. Al hacerlo, es posible obtener el informe de pruebas funcionales de Android y alimentarlo a teamcity con el fin de monitorear los resultados de las pruebas.
Espero que esto ayude a alguien, y yo intentaría contestar a sus preguntas si usted tiene alguno.
Al_th
- Embalaje android facebook sdk como apklib con maven
- Necesidad de reemplazo android.text.format.Time ya que está obsoleta