2010-06-17 13 views
27

Sono costretto a utilizzare JUnit 3. Se stavo usando JUnit 4, occasionalmente uso @Ignore poiché alcuni dei miei test richiedono un po 'di tempo.JUnit 3 ha qualcosa di analogo a @Ignore

C'è qualcosa di analogo in JUnit 4? Commentare i test è scadente e cambiare il nome (da testXxx()) potrebbe portare a test dimenticati. @Ignore è ottimo, perché ti ricorda sempre quali test non sono stati eseguiti.

Qualcuno ha una procedura ottimale per l'esecuzione di alcuni metodi di classi di test in JUnit 3?

risposta

24

Non conosco altre soluzioni oltre a commentare i test o rinominarli. Vado per l'opzione di ridenominazione e uso la mia convenzione. Ad esempio, tutti inizieranno con ignoreXXX(). Quindi puoi fare una ricerca/sostituzione con il tuo editore e sei pronto.

+0

Sì. JUnit 3 cerca in modo riflessivo i metodi che iniziano con "test" da eseguire. – gpampara

0

è possibile anteporre il metodo con esito negativo, quindi tutti i metodi come failingtest ***() verranno ignorati durante l'esecuzione di junit.

+4

Si prega di tenere d'occhio quando i post sono stati scritti e se hanno ancora bisogno di una risposta! – durron597

9

Per condizionalmente ignorare prove in Robotium/JUnit 3, sovrascrivo runTest() come

@Override 
protected void runTest() throws Throwable { 
    // Do nothing if the precondition does not hold. 
    if (precondition) { 
     super.runTest(); 
    } 
} 

I test che vengono ignorati in questo modo verrà visualizzato come "successo" in Eclipse, ma come non c'è Stato "Ignorato" con JUnit 3, questo è il meglio che sono riuscito a ottenere.

+0

Nella mia esperienza, ho anche dovuto aggiungere la precondizione ai metodi 'setUp()' e 'tearDown()', quando vengono chiamati al di fuori del metodo 'runTest()'. Ad esempio: 'protected void tearDown() genera Exception {if (precondition) super.tearDown(); }} ' – twelve17