2014-11-24 3 views
2

Я видел похожие вопросы здесь, но никто, кажется, не разрешает проблему. У меня есть следующий код;TestNg using dependsOnMethods и приоритет нарушает приоритет

@Test(priority=2) 
    public void increaseQty(){ 
     System.out.println("in increase qty");} 

    @Test(priority=2,dependsOnMethods={"increaseQty"}) 
     public void decreaseQty(){ 
     System.out.println("in decrease qty");} 

    @Test(priority=3) 
    public void removeFromCart() throws Exception{ 
      System.out.println("remove qty");} 

    @Test(priority=3,dependsOnMethods={"removeFromCart"}) 
     public void emptyCart() throws InterruptedException{ 
      System.out.println("empty Cart");} 

ожидаемую последовательность запуска является

increaseQty 
decreaseQty 
removeFromCart 
emptyCart 

но фактическая последовательность

increaseQty 
removeFromcart 
decreaseQty 
emptyCart 

Я не мог понять, почему его не после указанной последовательности. мне кажется, что он запускает независимые методы, а затем зависит от приоритета, но такого поведения не упоминается нигде в документации. Что я должен сделать, чтобы запустить его в желаемой последовательности?

ответ

4

Не предоставляйте приоритет и в зависимости от того, вы можете сгруппировать тесты. Вы можете сделать это нравится:

@Test(priority = 1, groups = { "qty" }) 
    public void increaseQty() { 
    System.out.println("in increase qty"); 
    } 

    @Test(dependsOnMethods = { "increaseQty" }, groups = { "qty" }) 
    public void decreaseQty() { 
    System.out.println("in decrease qty"); 
    } 

    @Test(dependsOnGroups = { "qty" }) 
    public void removeFromCart() throws Exception { 
    System.out.println("remove qty"); 
    } 

    @Test(dependsOnMethods = { "removeFromCart" }) 
    public void emptyCart() throws InterruptedException { 
    System.out.println("empty Cart"); 
    } 

Edit: Другая работа вокруг изменить TestNG XML, чтобы Дайте описание, как:

<methods> <include name="increaseQty"/> <include name="decreaseQty"/> <include name="removeFromCart"/> <include name="emptyCart"/> </methods>

так TestNG выполнит его таким образом, только.

+0

я вас нашел этот ответ исправьте любезно, отметьте это, иначе для любых расхождений сообщите нам ... спасибо –

+0

ваш ответ решает проблему, но, по моему пониманию, не рекомендуется добавлять нежелательные зависимости в ваш тест. Если какой-либо метод выходит из строя в группе qty, тогда остальное будет пропущено, что я не хочу. –

+0

. Другим способом, который вы можете достичь, является добавление имен методов в файл testng.xml, чтобы вы хотели их выполнить. путь, который я редактировал в ответ, или вы можете назвать свои тесты, как T1_increaseQty, T2_decreaseQty и так далее. Насколько я заметил, TestNg идет в его исполнении на основе именования тестов в алфавитном порядке. –

Смежные вопросы