2009-04-16 15 views
15

Ho bisogno di impostare un file di filtro per il mio script di form findbugs che analizza solo i file src/* e non i file test/*.FindBugs filtra il file per ignorare i test di JUnit

Qual è la sintassi per controllare tutte le classi ignorando qualsiasi nome di file o nome di pacchetto con 'test' nel nome?

risposta

22

FindBugs esegue effettivamente la scansione dei file di classe compilati, non lo sourcePath. Se stai compilando i tuoi file src/* e test/* nelle diverse directory, puoi semplicemente usare l'elemento nidificato <class...>.

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

Ciò non funzionerà se src/* e test/* sono entrambi compilati in una singola directory. In tal caso, utilizzare filter file ed escludere i pacchetti oi nomi di classe corrispondenti ai test.

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

dove exclude.xml assomiglia:

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

buona spiegazione ... a quanto pare ho bisogno di iniziare a bere un caffè o qualcosa del genere. Cancellata la mia risposta, che correttamente è fuorviante. – TofuBeer

-1

Tra l'altro, è una buona ideaper coprire unit test con FindBugs pure. Non vi è alcun motivo per utilizzare standard di qualità inferiori nei confronti dei test. I bug in prova sono proprio questo, bug.

Sicuramente, se si esegue FindBugs per la prima volta, potrebbero esserci molte segnalazioni di bug, ma il conteggio degli errori si ridurrà straordinariamente se presti loro attenzione.

+12

Il problema con questo è che si testano i casi di errore nel test dell'unità (come il passaggio di null come parametro contrassegnato da @Nonnull) –

Problemi correlati