我想按以下顺序运行方法A()->(b)->(c),并且我想多次运行以保持顺序相同,如A()->(b)->(c) -> A()->(b)->(c)-> A()->(b)->(c)。我提到的代码运行为(A)->(A)-(A)-(B)-(B)-(B)-(C)-(C)-(C)
我尝试在方法级别使用调用计数,优先级和数据提供程序,但是没有一个起作用。
import org.testng.annotations.DataProvider;
import org.testng.annotations.Factory;
import org.testng.annotations.Test;
public class Test2 {
int increment;
@Factory(dataProvider="data")
public Test2(int increment)
{
this.increment=increment;
}
@Test()
public void A()
{
String s = "Hi";
System.out.print(s+" "+increment);
}
@Test(dependsOnMethods ={"A"})
public void B()
{
String s = "MY Name is";
System.out.print(s+" "+increment);
}
@Test(dependsOnMethods ={"B"})
public void C()
{
System.out.println("Anubhav"+" "+increment);
}
@DataProvider(name="data")
public static Object[][] h()
{
Object s[][] ={{1},{2},{3}};
return s;
}
}
Expected - A() ->(b)->(c)->A() ->(b)->(c)->A() ->(b)->(c)
Actual - A)->(A)-(A)-(B)-(B)-(B)-(C)-(C)-(C)
答案 0 :(得分:0)
期望以一定的顺序执行测试通常会带来不良测试的味道。通常,您需要相互独立的独立测试。
话虽如此:请参见this article进行测试订购。而this article 用于参数化测试。
答案 1 :(得分:0)
这是预期的行为。当数据提供者返回多个数据集时,每个测试或@Test将执行这些数据集。参见https://testng.org/doc/documentation-main.html#parameters-dataproviders
您必须更改实施方式。.可能都在同一测试中。