Работает ли @Test (enabled = false) для класса в TestNG? - PullRequest
4 голосов
/ 19 июля 2009

Из документа TestNG я вижу, что (enabled = false) может применяться к классу или методу. Но, похоже, это работает только применительно к методу.

Кто-нибудь видел то же самое, нашел решение?

Кстати, я запускаю тесты в ItelliJ IDEA 7.0.

1 Ответ

9 голосов
/ 03 мая 2012

Кажется, у меня работает:

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

Результат:

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

Изменение false на true:

B.btest1

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

Вот что может сбить вас с толку (трудно сказать, поскольку вы не указали код):

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

Этот случай запустит тест, потому что, повторяя аннотацию @Test для метода, вы также переопределяете атрибут enabled на его значение по умолчанию, равное true.

Решение состоит в том, чтобы повторить enabled=false на уровне метода:

@Test(enabled = false)
public class B {

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

Я знаю, что это немного нелогично, но это необходимо для того, чтобы быть последовательными в том, как аннотации методов могут переопределять аннотации классов.

...