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

Eu estou testando meu aplicativo android usandocabaça-andróide que fornece seu próprio "projeto de teste", com um script que renomeia seu pacote para refletir o aplicativo em teste e, em seguida, usa uma subclasse de InstrumentationTestRunner:

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

Aceito qualquer resposta que permita gerar um relatório de cobertura de código semelhante a Emma ou Cobertura para um aplicativo Android, com dados coletados durante o teste em calabash-android.

Na tentativa de conseguir Emma trabalhando eu tenho ...Tentou seguirestas instruções para fazer com que o Maven construa meu projeto (porque já faz muito tempo desde que usei ant). UMAcoverage.em arquivo é gerado emtarget/emmaModificado o script calabash-android, adicionando "-e coverage true"Quando executo o calabash-android, vejo "Dados de cobertura gerados em /data/data/my.project/files/coverage.ec"adb -e pull /data/data/my.project/files/coverage.ec coverage.ec

... então agora eu deveria ser capaz de rodar:

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

mas Eu recebo um erro:

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

... Então eu suponho que há algo errado com oplugin maven para android, e eu estou tentando descobrir como gerar ocoverage.em Arquivo. Eu corri "android update project -p ."e"ant emma"e"ant emma debug", masNão consigo encontrar cobertura.em qualquer lugar...

... O arquivo build.xml gerado parece implicar que a geração do arquivo coverage.em é gerada apenas quando você executa "ant emma test", mas não acho que isso funcione porque o aplicativo de teste é controlado por calabash-android.

Na tentativa de obter Cobertura trabalhando eu tenho ...Pesquisei várias formas de "cobertura android", mas não parece que alguém tenha tido alguma sorte.Tentativa de configurar um perfil de Cobertura no meu arquivo pom do Maven para instrumentar as classes, mas (no Maven 3) receboum monte de avisos sobre log4j e ant ter atributos "InnerClasses" e que eu deveria recompilá-los da fonteum erro que com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.3.0: dex "ANDROID-040-001: Não foi possível executar: Command = / bin / sh -c -cd / path / para / 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.

... provavelmente é por isso que ninguém consegue fazer com que a cobertura funcione no Android?

questionAnswers(1)

yourAnswerToTheQuestion