Ранее я использовал версию testng 6.8.8, и все тесты выполнялись, как и ожидалось. Но несколько дней назад я обновил тестовую версию до 6.14.2, начал сталкиваться с проблемой запущенных последовательностей. Я также пытался изменить приоритет и все такое, но он не работает, как работал в testng 6.8.8. Обратитесь к исходному коду для более подробной информации.
класс1.java
package TestNG;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class class1
{
@BeforeClass
public void beforeclass1()
{
System.out.println("before_class1");
}
@AfterClass
public void afterclass1()
{
System.out.println("after_class1");
}
@Test(priority = 0)
public void class1_method1()
{
System.out.println("class1_method1");
}
@Test(priority = 1)
public void class1_method2()
{
System.out.println("class1_method2");
}
@Test(priority = 2)
public void class1_method3()
{
System.out.println("class1_method3");
}
}
класс2.java
package TestNG;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class class2
{
@BeforeClass
public void beforeclass1()
{
System.out.println("before_class2");
}
@AfterClass
public void afterclass1()
{
System.out.println("after_class2");
}
@Test(priority = 0)
public void class2_method1()
{
System.out.println("class2_method1");
}
@Test(priority = 1)
public void class2_method2()
{
System.out.println("class2_method2");
}
@Test(priority = 2)
public void class2_method3()
{
System.out.println("class2_method3");
}
}
класс3.java
package TestNG;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class class3
{
@BeforeClass
public void beforeclass1()
{
System.out.println("before_class3");
}
@AfterClass
public void afterclass1()
{
System.out.println("after_class3");
}
@Test(priority = 0)
public void class3_method1()
{
System.out.println("class3_method1");
}
@Test(priority = 1)
public void class3_method2()
{
System.out.println("class3_method2");
}
@Test(priority = 2)
public void class3_method3()
{
System.out.println("class3_method3");
}
}
testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="Test" >
<classes>
<class name="TestNG.class1">
<methods>
<include name="class1_method1"/>
<include name="class1_method2"/>
<include name="class1_method3"/>
<include name="beforeclass1"></include>
<include name="after_class1"></include>
</methods>
</class>
<class name="TestNG.class2">
<methods>
<include name="class2_method1"/>
<include name="class2_method2"/>
<include name="class2_method3"/>
<include name="beforeclass2"></include>
<include name="after_class2"></include>
</methods>
</class>
<class name="TestNG.class3">
<methods>
<include name="class3_method1"/>
<include name="class3_method2"/>
<include name="class3_method3"/>
<include name="beforeclass3"></include>
<include name="after_class3"></include>
</methods>
</class>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
Фактический вывод после запуска testng.xml с использованием testng(6.14.2):
до_класса1
class1_method1
до_класса2
class2_method1
до_класса3
class3_method1
класс1_метод2
класс2_метод2
class3_method2
класс1_метод3
after_class1
class2_method3
after_class2
class3_method3
after_class3
Ожидаемый результат: (отлично работает с testng 6.8.8, но не работает с testng 6.14.2)
до_класса1
class1_method1
класс1_метод2
класс1_метод3
after_class1
до_класса2
class2_method1
класс2_метод2
class2_method3
after_class2
до_класса3
class3_method1
class3_method2
class3_method3
after_class3