Cobertura de código para Android (calabash-android BDD)

Estoy probando mi aplicación de Android usandocalabaza-android que proporciona su propio "proyecto de prueba", con un script que cambia el nombre de su paquete para reflejar la aplicación bajo prueba, y luego utiliza una subclase InstrumentationTestRunner:

adb shell am instrument -w -e class sh.calaba.instrumentationbackend.InstrumentationBackend #{ENV['TEST_PACKAGE_NAME']}/sh.calaba.instrumentationbackend.CalabashInstrumentationTestRunner

Aceptaré cualquier respuesta que me permita generar un informe de cobertura de código similar a Emma o Cobertura para una aplicación de Android, con datos recopilados mientras se prueba en calabash-android.

En un intento de hacer funcionar a Emma, ​​tengo ...Intento de seguirestas instrucciones para hacer que Maven construya mi proyecto (porque ha pasado demasiado tiempo desde que usé ant). UNAcoverage.em archivo se genera entarget/emmaModificado el script calabash-android, añadiendo "-e coverage true"Cuando ejecuto calabash-android, finalmente veo "Datos de cobertura generados en /data/data/my.project/files/coverage.ec"adb -e pull /data/data/my.project/files/coverage.ec coverage.ec

... así que ahora debería ser capaz de correr:

java -cp $ANDROID_HOME/tools/lib/emma.jar emma report -r html -in target/emma/coverage.em,coverage.ec

pero Me sale un error:

EMMA: processing input files...
java.io.UTFDataFormatException: malformed input around byte 107

... Así que asumo que hay algo mal con elplugin de Android Maven, y estoy tratando de averiguar cómo generar elcoverage.em expediente. He corridoandroid update project -p ."y"ant emma"y"ant emma debug", peroNo puedo encontrar cobertura en ningún lado....

... El archivo build.xml generado parece implicar que la generación del archivo cover.em solo se genera cuando se ejecuta "ant emma test", pero no creo que vaya a funcionar porque la aplicación de prueba está controlada por calabaza-android.

En un intento de hacer que Cobertura funcione, tengo ...Busqué en Google varias formas de "cobertura android", pero no parece que alguien haya tenido algo de suerte.Intenté configurar un perfil de cobertura en mi archivo pom Maven para instrumentar las clases, pero (en Maven 3) obtengotodo un montón de advertencias sobre log4j y ant que tienen atributos "InnerClasses" y que debería recompilarlos desde la fuenteun error que com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.3.0: dex "ANDROID-040-001: No se pudo ejecutar: Command = / bin / sh -c -cd / path / a / myproject && java -jar $ ANDOID_HOME / platform-tools / lib / dx.jar --dex ... "
EXCEPTION FROM SIMULATION:
local variable type mismatch: attempt to set or access a value of type 
java.lang.Class using a local variable of type java.lang.reflect.Type[].  
This is symptomatic of .class transformation tools that ignore local variable information.

... esta es probablemente la razón por la que nadie ha podido obtener cobertura trabajando en Android?

Respuestas a la pregunta(1)

Su respuesta a la pregunta