Методы TestNG @Test не выполняются в указанном порядке в xml, когда мы добавляем зависимости в класс

Если у меня есть класс и xml следующим образом:

class Test 
{

  @Test 
  public void method1() {}

  @Test (dependsOn = "method1") 
  public void method2() {}

  @Test (dependsOn = "method2") 
  public void method3() {}



  @Test (dependsOn = "method1") 
  public void otherMethod() {}

}

XML

<test name="XYZ" preserve-order="true" group-by-instances="true">
    <classes>
     <class name="Test">
      <methods>
        <include name="method1"/> 
        <include name="method2"/> 
        <include name="method3"/> 
        <include name="otherMethod"/> 
       </methods>
      </class>
     </classes>
    </test>

ПРИМЕЧАНИЕ: Предположим, что все методы пройдут

Порядок исполнения:

method1 > method2 > otherMethod > method3

Поскольку method2 и otherMethod зависят от method1, они сначала выполняются, а затем method3, хотя method3 присутствует перед otherMethod в XML.

Как мы можем выполнять такие методы в последовательности, определенной в XML?

Ожидаемый заказ:

method1 > method2 > method3 > otherMethod


person omkar    schedule 04.03.2020    source источник


Ответы (1)


Кажется, что otherMethod зависит от method3, поскольку требуется строгий порядок. В этом случае я бы рекомендовал добавить эту зависимость в otherMethod

@Test (dependsOnMethods  = {"method1", "method3"}) 
public void otherMethod() {
}
person DmitriyH    schedule 04.03.2020
comment
Спасибо за ваш ответ. зависимостиOnMethods = {method1, method3}: при этом для выполнения otherMethod () должны быть переданы методы method1 и method3. Но в моем случае otherMethod логически не зависит от method3, т.е. даже если method3 не работает, otherMethod должен выполняться. - person omkar; 05.03.2020