2010-05-04 14 views

Respuesta

8

Parece que EMMA aún no es compatible con SDK. Solo es compatible con aplicaciones y pruebas que son parte del árbol de fuentes. Lo cual parece extraño porque no mencionan esto en la guía de desarrollo donde le informan sobre las opciones de instrumentación de EMMA. http://developer.android.com/guide/developing/testing/testing_otheride.html#AMOptionsSyntax

Usted puede leer la respuesta de este tipo (que parece estar en el equipo de desarrollo? No lo sé) http://groups.google.com/group/android-developers/msg/a542afd318832371

Si desea descargar y generar la fuente de Android suena factible obtener EMMA trabajar para tu propia aplicación Sin embargo, suena un poco complicado y posiblemente un poco inestable. Vea el hilo completo para más información: http://groups.google.com/group/android-developers/browse_thread/thread/43cf8a8ca5662f85/9b68eec3e7b625f3?lnk=gst&q=Emma#

+3

No tengo idea si esta respuesta es válida. Fue escrito hace más de 2 años atrás, cuando Android 2.0 todavía estaba en versión beta. Creo que – plainjimbo

9

Solo he podido hacer que emma trabaje con hormiga. Si usted tiene una acumulación de hormigas estableció continuación, puede ejecutar:

ant emma debug install 
ant emma debug install test 

El primero es ejecutar en el directorio del proyecto, el segundo desde el directorio de prueba. Consulte la documentación para más detalles: http://developer.android.com/guide/developing/building/building-cmdline.html

Si usted no tiene un archivo build.xml de hormigas ya se puede ver cómo generar uno de su proyecto actual aquí: http://developer.android.com/guide/developing/projects/projects-cmdline.html

La parte triste es que esto sólo trabajar en el emulador o en un dispositivo rooteado. Esto se debe a que el archivo de cobertura se genera en una carpeta que requiere root. También necesitaba modificar el archivo android-sdk/tools/ant/build.xml para copiar el archivo en mi dispositivo rooteado en otro lugar para poder llevarlo a cabo. He modificado el bloque de Emma del xml a ser las siguientes:

<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> 
+0

¿Obtendrá esto cobertura de los archivos SDK? – NioShobu

+0

No obtendrá cobertura de las aplicaciones de Android. Solo las fuentes en tu paquete. – Grimmace

1

Si está utilizando Maven para su proyecto es bastante sencilla con dispositivos arraigados de verificación este wiki:

http://code.google.com/p/maven-android-plugin/wiki/EmmaMaven

era fácil de implementar la solución aparte de la generación de informes pero si revisas los comentarios de la wiki encontrarás la solución

Cuestiones relacionadas