2010-05-04 40 views

cevap

8

Görünüşe göre EMK, SDK için henüz desteklenmiyor. Sadece kaynak ağacın parçası olan Uygulamalar ve Testler için desteklenir. Bu garip görünüyor çünkü bunlar, EMMA enstrümantasyon seçenekleri hakkında size bilgi verdikleri dev kılavuzda bahsetmiyorlar. http://developer.android.com/guide/developing/testing/testing_otheride.html#AMOptionsSyntax

Bu adam yanıtı okuyabilir

(Geliştirici ekibinden görünüyor? Bilmiyorum) http://groups.google.com/group/android-developers/msg/a542afd318832371

indirebilir ve EMMA çalışma almak mümkün sesler Android Kaynak oluşturmak istiyorsanız Kendi App için. Ancak, bu tür zor ve muhtemelen biraz kararsız geliyor. Daha fazla bilgi için tüm iş parçacığına bakın: http://groups.google.com/group/android-developers/browse_thread/thread/43cf8a8ca5662f85/9b68eec3e7b625f3?lnk=gst&q=Emma#

+3

çözümünü bu cevap hala geçerli olup olmadığını bilmiyorum. 2 yıldan daha uzun bir süre önce yazıldığı zaman, android 2.0'ın hala beta olduğu zaman, – plainjimbo

9

Sadece Emma kullanarak ant çalışıyordum. Eğer var ise bir karınca inşa çalıştırabileceğiniz sonra yukarı ayarlayın:

ant emma debug install 
ant emma debug install test 

ilk proje dizininde çalıştırılır, test dizinden ikincisini. Daha fazla ayrıntı için dokümanlar bakınız: Eğer bir karınca build.xml dosyasını yoksa http://developer.android.com/guide/developing/building/building-cmdline.html

zaten burada mevcut projeden birini oluşturmak için nasıl görebilirsiniz: http://developer.android.com/guide/developing/projects/projects-cmdline.html

üzücü kısmı bu durum yalnızca emülatör veya köklü bir cihaz üzerinde çalışın. Bunun nedeni, kapsama dosyasının kök gerektiren bir klasörde üretilmesidir. Ayrıca, köklü cihazımdaki dosyayı kopyalamak için android-sdk/tools/ant/build.xml dosyasını değiştirmem gerekiyordu.

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

oldu: köklü cihazlar onay bu wiki ile oldukça basittir

<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

'a inanıyorum Bu, SDK dosyalarının kapsamına girecek mi? – NioShobu

+0

Android apis kapsama alanı olmayacak. Sadece paketindeki kaynaklar. – Grimmace

1

projeniz için maven kullanıyorsanız: Aşağıdaki olmak xml emma bloğunu modifiye Çözüm üretmek rapor üretimi dışında kolay ama eğer wiki yorumları kontrol ederseniz