2009-04-16 22 views
15

Yalnızca/src/* dosyalarını taranan ve test/* dosyalarını tarayan findbugs ant script'im için bir filtre dosyası kurmam gerekiyor.FindBugs, JUnit testlerini yok saymak için filtre dosyası

Adında 'test' ile herhangi bir dosya adı veya paket adı yok sayılırken tüm sınıfları kontrol etmek için kullanılan sözdizimi nedir?

cevap

22

FindBugs, aslında derlenmiş sınıf dosyalarını değil, sourcePath'u tarıyor. Src/* ve test/* dosyalarınızı farklı dizinlere derliyorsanız, iç içe geçmiş <class...> öğesini kullanabilirsiniz.

<findbugs home="${findbugs.dir}" output="xml:withMessages" 
    outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M" 
    effort="max" projectName="${ant.project.name}" 
    auxClasspathRef="findbugs.classpath" 
    sourcePath="${src.dir}"> 
    <class location="${src.classes.dir}"/> 
</findbugs> 

src/* ve test/* her ikisi de tek bir dizinde derlenmişse bu işe yaramaz. Bu durumda, filter file kullanın ve sınamalara karşılık gelen paketleri veya sınıf adlarını hariç tutun. Bu arada

<FindBugsFilter> 
    <Match> 
    <Class name="~.*Test$"/> 
    </Match> 
    <Match> 
    <Package name="~test\..*"/> 
    </Match> 
</FindBugsFilter> 
+0

iyi bir açıklama ... görünüşe göre kahve ya da bir şeyler içmeye başlamalıyım. Cevabım silindi, hangi doğru dürüst yanıltıcıdır. – TofuBeer

-1

, buna da FindBugs ile birim testleri kapsayacak bir iyi bir fikir geçerli:

<findbugs home="${findbugs.dir}" output="xml:withMessages" 
    outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M" 
    effort="max" projectName="${ant.project.name}" 
    auxClasspathRef="findbugs.classpath" 
    sourcePath="${src.dir}" 
    excludefilter="exclude.xml"> 
    <class location="${classes.dir}"/> 
</findbugs> 

exclude.xml benziyor nerede. Testlere karşı daha düşük kalite standartlarını kullanmanın bir nedeni yoktur. Testteki hatalar sadece budur.

Elbette, FindBug'leri ilk kez çalıştırırsanız, birçok hata raporu olabilir, ancak bunlara dikkat ederseniz hata sayısı fazla mesai bitecektir.

+12

Buradaki sorun, birim sınamalarındaki hata durumlarını sınamanızdır (null olarak işaretli bir parametre olarak null olarak geçirme gibi) –

İlgili konular