¿Cómo ejecutar Android / Robotium Instrumentation casos de prueba contra una versión de lanzamiento APK?

Tengo una configuración de proyecto de Android con su proyecto de prueba de unidad Java puro que se ejecuta en la PC y sus proyectos de prueba de funcionalidad / integración que se ejecutan en Emulador. Estos dos hacen uso de InstrumentationTestCase2 casos de prueba y también marco Robotium. Soy capaz de ejecutar los dos de Eclipse, contra la versión de depuración de mi aplicación y recopilar los resultados y así sucesivamente.

Puedo crear un lanzamiento APK a través de la exportación de Eclipse y la construcción de la hormiga. APK está firmado, zipaligned y ofuscado.

Me gustaría saber cómo ejecutar las pruebas de funcionalidad / integración con la versión de lanzamiento de mi aplicación, en lugar de la de depuración. Sé que podría encur en algunos errores porque proyecto de la aplicación contiene algunas clases de prueba sólo que probablemente han sido eliminados por Proguard, pero puedo manejar eso.

Busqué en Google y aquí en SO, pero sin suerte. Sólo hay una página aquí relacionada con las pruebas con Robotium cuando solo tienes el APK de la aplicación, no hay fuente. No estoy seguro de que esto realmente me ayude. ¿Cómo puedo obtener el proyecto de prueba para ejecutarse en el dispositivo contra el lanzamiento APK?

  1. Firme la aplicación de lanzamiento bajo prueba y la aplicación de prueba Robotium con su clave de liberación
  2. Instala las dos aplicaciones en tu dispositivo
  3. Ejecute las pruebas con el siguiente comando:

Adb shell am instrumento -w com.your.package / android.test.InstrumentationTestRunner

Donde com.your.package es el nombre del paquete.

Consulte las preguntas y respuestas de Robotium para obtener más información: http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

Como mencionaste, también puedes tener algunos problemas de Proguard dependiendo de cómo hayas escrito tus casos de prueba.

Me gustaría saber cómo ejecutar las pruebas de funcionalidad / integración con la versión de lanzamiento de mi aplicación, en lugar de la de depuración.

Me encontré con esta pregunta mientras buscaba una solución ..

Como se trata de una vieja pregunta con respuestas antiguas, daré una respuesta actualizada para el proyecto Android basado en Gradle.

Lo que hice es:

  1. Deje que la prueba apk corra contra el tipo de compilación de lanzamiento añadiendo esto:
 android { testBuildType "release" } 
  1. Agrega reglas proguard para tu apk de prueba también
 buildTypes { release { minifyEnabled true proguardFiles 'proguard-rules.txt' testProguardFile('proguard-rules.txt') } } 

Ahora intenta ejecutar la prueba contra una versión de la versión. Todavía puede encontrarse un error debido a proguard. Si está utilizando Robotium, como yo, puede agregar la siguiente línea en su archivo proguard-rules.txt:

 ##--------------- Begin: proguard configuration for Robotium ---------- -keep class com.robotium.** { *;} ##--------------- End: proguard configuration for Robotium ---------- 

Espero eso ayude.

Es necesario poner ant.properties en la raíz del proyecto de la aplicación de destino y de la aplicación de prueba. El contenido de la ant.properties debería ser el siguiente: key.alias= key.store.password= key.store= key.alias.password=

  • Prueba de Android usando logcat para la captura de eventos
  • Prueba de prueba de Android recurso
  • "La prueba no se ejecutó hasta la finalización." Motivo: 'La instrumentación ejecutada falló debido a' El proceso se estrelló. '' Mientras se ejecutan varios testcases
  • ¿Robotium es confiable para probar cuán rápido comienzan las actividades y fragmentos?
  • Robotium. En la serie de pruebas cada prueba siguiente es afectada por la prueba anterior
  • Android: Colaboración de la interfaz de usuario (Jenkins + Spoon +?)
  • Enviar Tecla Intro usando robotium para pruebas de Android?
  • Android Robotium - ¿Cómo administrar el orden de ejecución de los testcases?
  • Desinstalar la aplicación al realizar la prueba
  • Cómo probar automáticamente onResume el comportamiento llamando onDestroy usando Robotium?
  • Robotium: ¿Cómo espero que termine la carga antes de continuar?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.