Мне удалось заставить Эмму работать, используя муравья. Если вы настроили сборку муравья, вы можете запустить:
ant emma debug install
ant emma debug install test
Первый выполняется в каталоге вашего проекта, второй - из вашего тестового каталога. См. Документы для более подробной информации: http://developer.android.com/guide/developing/building/building-cmdline.html
Если у вас еще нет файла ant build.xml, вы можете посмотреть, как его сгенерировать из текущего проекта: http://developer.android.com/guide/developing/projects/projects-cmdline.html
Грустная часть в том, что это будет работать только на эмуляторе или на корневом устройстве. Это связано с тем, что файл покрытия создается в папке, требующей root. Мне также нужно было изменить файл android-sdk / tools / ant / build.xml, чтобы скопировать файл на мое корневое устройство в другом месте, чтобы я мог его снять. Я изменил блок emma xml следующим образом:
<if condition="${emma.enabled}">
<then>
<echo>WARNING: Code Coverage is currently only supported on the emulator and rooted devices.</echo>
<run-tests-helper emma.enabled="true">
<extra-instrument-args>
<arg value="-e" />
<arg value="coverageFile" />
<arg value="${emma.dump.file}" />
</extra-instrument-args>
</run-tests-helper>
<echo>Copying coverage to readable directory...</echo>
<exec executable="${adb}" failonerror="true">
<arg line="${adb.device.arg}" />
<arg value="shell" />
<arg value="echo cp ${emma.dump.file} /sdcard/coverage.ec | su" />
</exec>
<echo>Downloading coverage file into project directory...</echo>
<exec executable="${adb}" failonerror="true">
<arg line="${adb.device.arg}" />
<arg value="pull" />
<arg value="/sdcard/coverage.ec" />
<arg value="coverage.ec" />
</exec>
<echo>Extracting coverage report...</echo>
<emma>
<report sourcepath="${tested.project.absolute.dir}/${source.dir}"
verbosity="${verbosity}">
<!-- TODO: report.dir or something like should be introduced if necessary -->
<infileset dir=".">
<include name="coverage.ec" />
<include name="coverage.em" />
</infileset>
<!-- TODO: reports in other, indicated by user formats -->
<html outfile="coverage.html" />
</report>
</emma>
<echo>Cleaning up temporary files...</echo>
<delete file="coverage.ec" />
<delete file="coverage.em" />
<echo>Saving the report file in ${basedir}/coverage/coverage.html</echo>
</then>
<else>
<run-tests-helper />
</else>
</if>