Cómo obtener cobertura de código en Android usando Maven (android-maven-plugin)

Tengo un proyecto de Android Maven (vamos a llamarlo proyecto_de_parentes ) que contiene varios submódulos: my_library_project , app_using_my_library_project , test_project y extra_lib .

Así, la estructura sería así:

parent_project * my_library_project (Android Library Project) * app_using_my_library_project (Demo app that uses the Android Library Project) * test_project (Project containing the tests instrumented against app_using_my_library_project) * extra_lib 

Lo que me gustaría es generar una cobertura de prueba para mi proyecto de Android usando Maven (y no Ant, ya soy capaz de generar informes de cobertura de código usando Ant, siguiendo estas instrucciones: https://wiki.jenkins-ci.org/display/ JENKINS / Building + an + Android + app + y + test + proyecto ).

No tengo una fuerte preferencia por la herramienta de cobertura de código utilizada, pero preferiría EMMA, ya que parece la más común en el mundo de desarrollo de Android.

Estoy usando android-maven-plugin (http://code.google.com/p/maven-android-plugin/) en su versión 3.0.0-alfa-12 y ya he intentado poner en la configuración de mi Padre es pom.xml el siguiente:

 <test> <coverage>true</coverage> <createreport>true</createreport> </test> 

Pero eso no produce el informe de cobertura de código deseado.

Asi que:

  • ¿Existe alguna diferencia entre la configuración de pom para obtener la cobertura de código para un proyecto Java estándar y un proyecto para Android?
  • ¿Conoces algún ejemplo de proyecto de Android con Maven que tenga cobertura de código?
  • ¿Algún consejo sobre cómo hacer esto?

Si vas a seguir con maven, y quieres un plugin para maven que va a hacer el trabajo de código de cobertura, creo que Cobertura es una mejor opción, como Emma estable última construcción es a partir de 2005.

Aunque en "Android Application Testing Guide" (un libro reciente de junio de este año) hablan de Emma y demuestran cómo utilizarlo para las pruebas, creo que la gente se adhiere a ella, porque es necesario para construir Android desde el origen (y si Google utiliza Él para su propio desarrollo del OS, debe ser el mejor, la derecha?).

Si no estás fanáticamente obligado a Maven, te recomiendo probar Robotium . Robotium tiene soporte total para actividades, diálogos, tostadas, menús y menús de contexto. También es compatible con la cobertura de código (Ant basado, sin embargo, por ahora) y algunas personas lo reconocen como una de las principales plataformas de pruebas para Android.

Editar:

Según el sitio Cobertura , soporta la cobertura de código en los entornos Maven 1 y Maven 2. Aunque, usted puede encontrar ejemplos con Maven 3 también. Existe un problema entre las configuraciones de pom de Maven 2 y Maven 3. Parece que para que el reporte funcione debes mover básicamente tus viejos plugins de reporte en la sección de configuración del nuevo plugin de maven-site . (Ver el artículo para más detalles).

Otra opción es intentar usar Sonar con Maven. Sonar ha incorporado incrustaciones de cobertura (también opciones para incorporar EMMA ) y algunas personas afirman que han reportado con éxito cobertura de código, a pesar de que tuvieron problemas al usar el complemento de cobertura "stand-alone".

Podría generar la cobertura de código informó usando plugin de emma maven y mostrar informes en sonar para un proyecto de aplicación de Android. Solo sigue la configuración en https://code.google.com/p/maven-android-plugin/wiki/EmmaMaven . Pero para el proyecto de la biblioteca consigo una cobertura del 0%. No genera los archivos de metadatos. Sin embargo, tan pronto como cambiar el proyecto de la biblioteca a paquete como un apk, funciona como un encanto. Ejecuta las pruebas en un emulador (configurado en jenkins) y muestra los informes de cobertura. Si usted está mirando hacia fuera específicamente para el proyecto de la biblioteca, esto no ayudará. Voy a publicar si encuentro alguna solución que se ocupa de proyectos de la biblioteca.

  • Error con Maven Android: El POM para com.google.android.gms: google-play-services: jar: 13.0.0 falta, no hay información de dependencia disponible
  • Adición de la biblioteca de soporte al proyecto de estudio de Android
  • Error en el archivo xml de maven pom: Creando un proyecto Android
  • Falta dependencias de la biblioteca de Android de POM con Gradle
  • Cómo incluir dependencias de maven remoto en una biblioteca de Android
  • Obtención de ClassNotFoundException al ejecutar pruebas Robolectric con el complemento Maven surefire
  • ¿Cómo publicar Android Library en Android Arsenal?
  • Generar jar minimizado con sólo las clases usadas
  • NoClassDefFound error al importar el proyecto desde git
  • Plugin de Android Maven apklib Mojo no incluye R compilado en apklib resultante
  • Error de compilación de Maven para android Proyecto "error: paquete R no existe"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.