TestNG在不同的测试类之间传递测试参数

时间:2014-09-20 00:06:26

标签: testng

有没有办法传递动态生成的数据并将它们传递给不同的测试类/套件?

我所拥有的是以下内容: 用户名/密码对由TestUtil.signUpNewAccount()创建;我想将此帐户对象传递给其他测试类,以便他们的测试方法可以使用它。

  • Test1Class.test1(){//使用newUserAccount ....};
  • Test1Class.test2(){//使用newUserAccount ....};
  • Test2Class.test1(){//使用newUserAccount ....};
  • Test2Class.test2(){//使用newUserAccount ....};

2 个答案:

答案 0 :(得分:0)

我最终使用了TestNG的ITestContext。对于需要共享动态生成数据的测试类,我有一个抽象类,用@BeforeClass初始化所需数据

public abstract class GenericWebTest{
    protected UserAccount ua;
    @BeforeClass
    public void BeforeClass(ITestContext ctx){
        if(ctx.getAttribute("username") == null){
            UserAccount ua = UserUtil.newSignUp();
            ctx.setAttribute("username", ua.getUsername);
            ctx.setAttribute("password", ua.getPassword);
        }
        us = new UserAccount(ctx.getAttribute("username"), ctx.getAttribute("password"));
    }
}

public class MemberPageTest extends GenericWebTest {
    @Test
    public void test1(){
        MemberPage mp = new MemberPage();
        mp.login(ua); //login using the already created user account
    }
}

答案 1 :(得分:0)

我建议使用@Factory Factory允许您使用不同的参数创建不同的测试实例http://testng.org/doc/documentation-main.html#factories