2011-09-26 16 views
8

ile birim testi yavaşladı Son zamanlarda Cobertura'yı Ant derleme betikleriyle bütünleştirdim ve doğru bir şekilde yapıp yapmadığımı merak ediyorum çünkü ünite testlerini çalıştırmak için gereken süreyi önemli ölçüde yavaşlattı.Cobertura

... 
[junit] Running gov.nyc.doitt.gis.webmap.strategy.markup.ViewportDeterminingMarkupStrategyTest 
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.38 sec 
[junit] Flushing results... 
[junit] Flushing results done 
[junit] Cobertura: Loaded information on 282 classes. 
[junit] Cobertura: Saved information on 282 classes. 
[junit] Running gov.nyc.doitt.gis.webmap.strategy.markup.VisibleFeatureTypesMarkupInfoTest 
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.434 sec 
[junit] Flushing results... 
[junit] Flushing results done 
[junit] Cobertura: Loaded information on 282 classes. 
[junit] Cobertura: Saved information on 282 classes. 
[junit] Running gov.nyc.doitt.gis.webmap.strategy.markup.basemap.BasemapByViewportStrategyTest 
[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 2.016 sec 
[junit] Flushing results... 
[junit] Flushing results done 
[junit] Cobertura: Loaded information on 282 classes. 
[junit] Cobertura: Saved information on 282 classes. 
[junit] Running gov.nyc.doitt.gis.webmap.strategy.markup.basemap.BasemapByZoomLevelAndCenterPointStrategyTest 
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 1.853 sec 
[junit] Flushing results... 
[junit] Flushing results done 
[junit] Cobertura: Loaded information on 282 classes. 
[junit] Cobertura: Saved information on 282 classes. 
... 

Her test çalışmasından sonra Cobertura söylüyor balık görünüyor:

:

İşte
[junit] Cobertura: Loaded information on 282 classes. 
[junit] Cobertura: Saved information on 282 classes. 
... 

benim Ant yapı komut benim birim test görevdir İşte

örnek bir konsol çıkışı
<target name="unit-test" depends="compile-unit-test"> 
    <delete dir="${reports.xml.dir}" /> 
    <delete dir="${reports.html.dir}" /> 
    <mkdir dir="${reports.xml.dir}" /> 
    <mkdir dir="${reports.html.dir}" /> 

    <junit fork="yes" dir="${basedir}" failureProperty="test.failed" printsummary="on"> 
     <!-- 
       Note the classpath order: instrumented classes are before the 
       original (uninstrumented) classes. This is important. 
      --> 
     <classpath location="${instrumented.dir}" /> 
     <classpath refid="test-classpath" /> 

     <formatter type="xml" /> 
     <test name="${testcase}" todir="${reports.xml.dir}" if="testcase" /> 
     <batchtest todir="${reports.xml.dir}" unless="testcase"> 
      <fileset dir="TestSource"> 
       <include name="**/*Test.java" /> 
       <exclude name="**/XmlTest.java" /> 
       <exclude name="**/ElectedOfficialTest.java" /> 
       <exclude name="**/ThematicManagerFixturesTest.java" /> 
      </fileset> 
     </batchtest> 
    </junit> 
</target> 

Kurulum ve çıktılarım doğru görünüyor mu? Birim testlerinin, tek başına çalıştırıldığında ve Cobertura ile derleme komutunda 3 dakika sürdüğünde 2.234 saniye sürmesi normal midir? cobertura-anttask reference itibaren

+0

ben sorunu (Ant :-P kullanarak yanı sıra) ne görmüyorum (Vurgu. Benimdir), ancak gecikme bu tür kesinlikle normal değil. –

+0

Anladığım kadarıyla Ant'den başka tercih edilen bir aracınız var mı? Ne önerirsiniz? –

+0

maven ve gradle karınca üzerinde hem de büyük gelişmeler vardır. Bir maven projesine cobertura eklenmesi önemsizdir. –

cevap

8

: Aynı nedenle

, size daha sonra karınca 1.6.2 veya daha yüksek kullanıyorsanız seti forkmode isteyebilirsiniz = "bir zamanlar" Bu sadece bir JVM neden olur Tüm JUnit testleriniz için başladı ve Cobertura ek yükünü, JVM başlatma/durdurma işleminde her zaman kapsama veri dosyasını okuyarak/yazarak azaltacaktır.

+1

mükemmel çalıştı, teşekkürler! –