Priority в TestNG не работает вместе с dependsOnMethods


(booch) #1

Здравствуйте, вопрос по TestNG

Все тесты на проекте имеют зависимости друг от друга и выполняются с использованием атрибута dependsOnMethods в анатации @Test для каждого тестового метода. Есть ситуации когда несколько тестов зависят от одного общего, но порядок их выполнения должен быть строго определен. Для этого я попытался добавить атрибут priority, но ничего не вышло. Вот например:

   @Test()

   public void testA() {
       System.out.println("A");
   }
 
   @Test(dependsOnMethods={"testA"}, priority = 1)
   public void testB() {
       System.out.println("B");
   }
 
   @Test(dependsOnMethods={"testA"}, priority = 0)
   public void testC() {
      System.out.println("C");
   }

На выходе получаю

A

B

C

А ожидаю

A

C

B

потому, что у метода C приоритет выше чем у B

Без dependsOnMethods атрибут Priority работает корректно.

Пробовал последнюю версию на сегодняшний день testng-6.8 и testng-6.9beta

Заранее спасибо за любые дельные советы :)

 

 


Замена assert на мягкую проверку verify в TestNG
(Mykhailo Poliarush) #2

я попробовал на своей версией 6.3.1

работает, как надо. Предлагаю или запостить им баг, или взять предыдущую версию библиотеки.

 

package dependings;

import org.testng.annotations.Test;

public class Test3 {
    @Test()
    public void test0() {
        System.out.println("0");
    }

    @Test(dependsOnMethods = { "test0" }, priority = 3)
    public void test1() {
        System.out.println("1");
    }

    @Test(dependsOnMethods = { "test0" }, priority = 2)
    public void test2() {
        System.out.println("2");
    }
    @Test(dependsOnMethods = { "test0" }, priority = 1)
    public void test3() {
        System.out.println("3");
    }    
}

Результат получается вот таким вот:

 

[TestNG] Running:
  C:\Users\test\AppData\Local\Temp\testng-eclipse--65309967\testng-customsuite.xml
 
0
3
2
1
PASSED: test0
PASSED: test3
PASSED: test2
PASSED: test1

(booch) #3
Интересно, я где то читал что это общая проблема TestNG что он не может одновременно работать с priority и dependsOnMethods. Рад что это возможно.
Тем не менее я скачал 6.3.1, попробовал ваш пример, но вывод опять неправильный :(
0
1
2
3
 
Запускаю через Ant и xml файл (удалил все лишнее для этого теста)
 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Custom Test">
   <test name="Custom Test for Custom browser">
      <classes>
          <class name="com.BrowserHMI.Test3" />
      </classes>
   </test>
</suite>
 
В папке с либами оставил только версию 6.3.1, при запуске анта видно, что в classpath'е используется версия testng-6.3.1.jar
 

(Mykhailo Poliarush) #4

странно!

а попробуйте тесты запустить без анта. 

что получиться?

я запускал тесты из еклипса, возможно проблема в связке с ант.


(booch) #5
разобрался!
 
я для веб тестирования использую selenium-server-standalone-2.25.0.jar, почему то с этой версией приоритеты не работают как надо (странно, это же библиотека селениума а не тестнг)
 
тем не менее после обновления до 2.28.0 все заработало отлично и через ant и через testng (включая последнюю версию) с консоли и с плагина эклипса
 
спасибо что подтолкнули в провильном направлении! :)