2015-06-25 4 views
-1

Взаимодействует ли группа dependact с beforeClass?dependOnGroup не работает с beforeclass

Мой код, как:

@BeforeClass(dependsOnGroups = { "init" }) 
public void setup() throws Exception 
{ 
//some code 
} 

@Test(dependsOnGroups = { "init" }) 
public void test() throws Exception 
{ 
//some code 
} 

INIT группа имеет некоторые методы испытаний от другого класса.

В моем случае, если инициализация завершается неудачно, методы тестирования, отмеченные с помощью dependOnGroups = {"init"}, пропускаются, но не до класса.

Есть ли другой способ получить желаемый результат?

Заранее благодарен

ответ

0

Это ожидаемое поведение.

Я думаю, что вы можете сделать, это

@beforeClass(dependsOnGroups= {"init"}) 
public setUp(){ 
} 

для beforeClass, а также. Который должен решить вашу проблему.

Еще одна вещь, которую вы можете сделать - это иметь afterClass и выполнить runAlways = true. И в этом aftetClass вы можете отменить все, что вы сделали в beforeClass, даже если фактический тест пропускается. (Здесь я предполагаю, что ваша проблема вы делаете что-то в beforeClass и они не используются в фактическом методе испытаний)

0

Это, как представляется, ожидаемое поведение ..

@BeforeClass аннотацию: - Примечание - методы, помеченные с помощью @ Before/After, не будут частью окончательного отчета. setup() не является «@Test», и, следовательно, его не пропускают, хотя метод зависимой группы init не работает.

@Test аннотация: - Если метод зависит от метода (который является частью группы, здесь «инициализации») терпит неудачу, и у вас есть жесткая зависимость от него (alwaysRun = ложь, который по умолчанию), методы, которые зависят от него (здесь test()) являются не отмечены как FAIL, а как SKIP. Пропущенные методы @Test будут представлены как таковые в отчете testNG; потому что это важно, поскольку пропущенные методы могут быть неудачными.

Если вы хотите, чтобы метод @Test выполнялся, даже если метод зависимых групп терпит неудачу, используйте мягкую зависимость. Он получается добавлением «alwaysRun = true» в аннотацию @Test.

синтаксис: - @test (dependsOnGroups = { "INIT"}, alwaysRun = истина)

  • Здесь тест() всегда будет выполняться после того, как группы, вы зависите, даже если некоторые из них провалился.
1

Выяснено, что beforeclass (или afterclass) не принимает параметр dependonGroup ... мы можем использовать beforemethod (если применимо в случае).

я решил мою проблему, установив флаг инициализации методов к ложным, если они не в состоянии и использовать его в качестве beforeclass:

@BeforeClass 
public void setup() throws Exception 
{ 
if(flag==true) 
{ 
//some code 
} 
} 
Смежные вопросы