2009-07-19 11 views
4

Du document TestNG, je peux voir que (enabled = false) peut être appliqué à une classe ou une méthode. Mais il semble que cela ne fonctionne que lorsqu'il est appliqué à une méthode.Est-ce que @Test (enabled = false) fonctionne pour une classe dans TestNG?

Quelqu'un a vu la même chose, a trouvé une solution? J'exécute des tests dans ItelliJ IDEA 7.0 par la même occasion.

+0

Pour le bénéfice des lecteurs, il ne peut pas être «activé» et doit être «activé». – flow2k

Répondre

8

Il semble fonctionner pour moi:

@Test(enabled = false) 
public class B {  
    public void btest1() { 
    System.out.println("B.btest1"); 
    } 
} 

Résultat:

=============================================== 
SingleSuite 
Total tests run: 0, Failures: 0, Skips: 0 
=============================================== 

Changer false à true:

B.btest1 

=============================================== 
SingleSuite 
Total tests run: 1, Failures: 0, Skips: 0 
=============================================== 

Voici ce que pourrait être vous trébuche (difficile de dire puisque vous n'avez fourni aucun code):

@Test(enabled = false) 
public class B { 
@Test 
public void btest1() { 
    System.out.println("B.btest1"); 
} 
} 

Cette affaire le test, car en répétant l'annotation @Test sur la méthode, vous surchargez également l'attribut enabled à sa valeur par défaut, qui est true.

La solution est de réitérer enabled=false au niveau de la méthode:

@Test(enabled = false) 
public class B { 

@Test(enabled = false) 
public void btest1() { 
    System.out.println("B.btest1"); 
    } 
} 

Je suis conscient qu'il est un peu contre-intuitif, mais il est nécessaire d'être cohérent dans les annotations de méthode façon peuvent remplacer les annotations de classe.