2010-04-01 15 views

Respuesta

0

Como otro seguimiento, he encontrado una solución "decente". Al ejecutar mis pruebas de instrumentación, tuve que usar la opción '-r' (por ejemplo, adb shell am instrument -w -r com.myApp/android.test.InstrumentationTestRunner> tests-out.txt) y escribir mi propio analizador para convertir el salida en formato XML aceptado por Hudson.

No es perfecto, ya que no proporciona el tiempo, ni proporciona mensajes de salida de registro, pero al menos ahora tengo Hudson informando sobre mis pruebas de Android.

4

FYI, para cualquier otra persona que tropiece con esta pregunta. Creé un nuevo TestRunner que puede usar en sus proyectos de prueba de Android que arrojarán los resultados de su prueba en formato XML legible por Hudson (y probablemente cualquier otra aplicación de CI). Puede leer al respecto aquí: http://droiddudes.com/2010/04/07/athenatestrunner/ o simplemente tomarlo desde aquí: http://github.com/dwatling/athena

+0

Gracias por abrir su herramienta. Desafortunadamente tengo un problema con eso. Este es el resumen de salida de Athena: Total de pruebas: 22 Fallas totales: 0 (0.0) Errores totales: 0 (0.0) Tiempo total: 70 segundos pero a partir del eclipse aparece: Ejecuciones 31/31, Errores: 3, Fallas: 4. ¿Podrías ayudarme con esto? –

+0

En la salida de Athena, muestra el número de suites de prueba encontradas y el número de pruebas encontradas en cada suite.¿Podrías comprobar dónde está la discrepancia entre la ejecución dentro de Eclipse y Athena? Específicamente, ¿qué suites y pruebas no se ejecutan en Athena, pero se ejecutan en Eclipse? – Dan

+0

Parte de la discrepancia en el recuento se debe a que Eclipse informa (y ejecuta) el "testAndroidTestCaseSetupProperly" de AndroidTestCase. Athena no ejecuta esa prueba, solo ejecutará las pruebas que se encuentran en los archivos * Test.java. Esto es algo que se puede mejorar en el futuro. – Dan

1

Tuvimos un problema similar en nuestra empresa. Revisamos todas las soluciones de código abierto disponibles y ninguna de ellas fue realmente perfecta. Así que desarrollamos y abrimos una solución para ello. Todavía no digo uno "último", pero ciertamente mucho mejor que Athena o el reportero de Python o cualquier análisis posterior a la prueba. Lo puedes encontrar aquí: http://code.google.com/p/the-missing-android-xml-junit-test-runner/

Proporciona:

  • archivo XML independiente por cada paquete involucrado
  • archivos XML se generan en el dispositivo (necesita ser pull'ed ADB después del ensayo)
  • temporización de las pruebas es totalmente compatible
  • hemos informado traza completa en caso de fallo/error

En lugar de analizar el código fuente de Java (como en athena) o analizar el resultado (el script de python), ampliamos el corredor de instrumentación de Android. De modo que obtenemos todos los beneficios del uso de opciones de línea de comando estándar para la selección de pruebas, habilitación de cobertura, etc., todas descritas aquí: http://developer.android.com/guide/developing/testing/testing_otheride.html#RunTestsCommand.

Pudimos ejecutar con éxito el código utilizando reglas de prueba estándar con cobertura analizada por emma, todo muy bien informado en Jenkins.

Cuestiones relacionadas