2010-06-17 8 views
27

Je suis obligé d'utiliser JUnit 3. Si j'utilisais JUnit 4, j'utiliserais occasionnellement @Ignore puisque plusieurs de mes tests prennent un peu de temps.Est-ce que JUnit 3 a quelque chose d'analogue à @Ignore

Y a-t-il quelque chose d'analogue dans JUnit 4? Le commentaire sur les tests est bâclé, et changer le nom (de testXxx()) pourrait conduire à des tests oubliés. @Ignore est génial, car il vous rappelle toujours quels tests n'ont pas été exécutés.

Est-ce que quelqu'un a une meilleure pratique pour exécuter certaines des méthodes de classes de test dans JUnit 3?

Répondre

24

Je ne connais pas d'autre solution que de commenter les tests ou de les renommer. Je voudrais aller à l'option de renommage et utiliser ma propre convention. Par exemple, tous commenceront par ignoreXXX(). Ensuite, vous pouvez faire un trouver/remplacer avec votre éditeur et vous êtes prêt.

+0

Oui. JUnit 3 recherche de manière réfléchie les méthodes commençant par "test" à exécuter. – gpampara

0

vous pouvez ajouter la méthode à l'échec, ainsi toutes les méthodes telles que failingtest ***() seront ignorées pendant l'exécution de junit.

+4

S'il vous plaît garder un œil sur quand les messages ont été écrits, et si elles ont encore besoin d'une réponse! – durron597

9

Pour condition ignorer les tests dans Robotium/JUnit 3, j'override runTest() comme

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

Tests qui sont ignorés de cette façon va apparaître comme « succès » dans Eclipse, mais comme il n'y a L'état "Ignoré" avec JUnit 3, c'est le meilleur que j'ai pu obtenir.

+0

Dans mon expérience, j'ai aussi dû ajouter la précondition aux méthodes 'setUp()' et 'tearDown()', car elles sont appelées en dehors de la méthode 'runTest()'. Par exemple: 'protected void tearDown() throws Exception {if (condition préalable) super.tearDown(); }} ' – twelve17