Покрытие кода для Android (calabash-android BDD)

Я тестирую свое приложение для Android, используякальян-андроид который предоставляет свой «тестовый проект» со своим скриптом, который переименовывает его пакет, чтобы отразить тестируемое приложение, а затем использует подкласс InstrumentationTestRunner:

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

Я приму любой ответ, который позволит мне сгенерировать отчет о покрытии кода, аналогичный Эмме или Кобертуре для приложения Android, с данными, собранными во время тестирования в calabash-android.

In attempt to get Emma working I have... Attempted to follow these instructions to get Maven to build my project (because it's been too long since I used ant). A coverage.em file is generated in target/emma Modified the calabash-android script, adding "-e coverage true" When I run calabash-android, I eventually see "Generated coverage data to /data/data/my.project/files/coverage.ec" adb -e pull /data/data/my.project/files/coverage.ec coverage.ec

... так что теперь я должен быть в состоянии запустить:

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

but Я получаю ошибку:

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

... поэтому я предполагаю, что сAndroid Maven плагини я пытаюсь выяснить, как создатьcoverage.em файл. Я "побежал"android update project -p .& Quot; и & quot;ant emma& Quot; и & quot;ant emma debug& quot ;, ноI can't find coverage.em anywhere...

... Сгенерированный файл build.xml, по-видимому, подразумевает, что генерация файла cover.em генерируется только при запуске «ant emma test», но я не думаю, что это сработает, потому что тестовое приложение управляется калебас-андроидом.

In attempt to get Cobertura working I have... Googled various forms of "cobertura android", but it doesn't seem as if anyone has had any luck. Attempted to configure a cobertura profile in my Maven pom file to instrument the classes, but (in Maven 3) I get a whole heap of warnings about log4j and ant having "InnerClasses" attributes and that I should recompile them from source an error that com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.3.0:dex "ANDROID-040-001: Could not execute: Command = /bin/sh -c -cd /path/to/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.

... возможно, поэтому никто не смог заставить cobertura работать на Android?

Ответы на вопрос(1)

Ваш ответ на вопрос