2010-11-16 1 views
5

Nella nostra suite di test JUnit, ho individuato alcuni test che non aumentano la copertura, e quindi dovrebbero essere rimossi (richiedono tempo ma non aggiungono valore alla suite di test).Rimozione test JUnit testuite ridondanti

Mi chiedevo quali strumenti esistono in grado di individuare test ridondanti per me?

risposta

6

Considererei questo un uso improprio della metrica di copertura del codice. Solo perché un test non aumenta la metrica, non è necessariamente ridondante: potrebbe testare un percorso di esecuzione specifico costituito da LOC coperto da diversi altri test, ma rappresenta un comportamento che nessuno degli altri test copre. E ricorda: il comportamento del codice è influenzato molto dallo stato, ma nessuno strumento di copertura del test che conosca misura la copertura dello spazio degli stati.

A meno che il runtime della suite di test non sia un problema serio, ci sono molte cose migliori che puoi fare con il tuo tempo che eliminare i test eventualmente ridondanti.

+0

Tendo ad essere d'accordo con te (potrebbe essere un uso improprio della metrica della copertura). Ma ci sono anche altre metriche, quindi penso che questo problema dovrebbe essere affrontato più ampiamente e guardare più delle metriche standard, come ad esempio anche il numero di condizionali. –

2

Alcuni mesi fa ho utilizzato il plug-in Eclipse Clover. Potrebbe mostrare quante volte ogni riga di codice deve essere eseguita ed evidenziata dopo i test unitari. Penso che Clover potrebbe aiutarti a questo punto.

+0

Questo non è proprio il mio punto qui :) Uso Cobertura sullo strumento di copertura di Hudson e IntelliJ durante lo sviluppo. Quest'ultimo mostra anche il numero di volte che ogni linea passa. Ma non da quali test! Voglio sapere quali test non aggiungono a una copertura migliore e dato che non sono autistico, non riesco a ricordare quante volte la suite di test ha superato ogni riga nella mia base di codice. –

+0

Capito. Spero che Clover abbia aggiunto la nuova funzionalità durante questi mesi :) –