我想按顺序运行三个@Test方法

时间:2019-08-17 11:39:20

标签: java unit-testing testng

我想按以下顺序运行方法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)

2 个答案:

答案 0 :(得分:0)

期望以一定的顺序执行测试通常会带来不良测试的味道。通常,您需要相互独立的独立测试。

话虽如此:请参见this article进行测试订购。而this article 用于参数化测试。

答案 1 :(得分:0)

这是预期的行为。当数据提供者返回多个数据集时,每个测试或@Test将执行这些数据集。参见https://testng.org/doc/documentation-main.html#parameters-dataproviders

您必须更改实施方式。.可能都在同一测试中。