无法使用ITestContext将param从一个测试传递到另一个测试:返回null(TestNG + Java)

时间:2016-09-26 09:12:39

标签: java testng

我试图使用ITestContext将param从一个测试传递到另一个测试:

public class One {
int waterfallId;

@Test()
public void testOne(ITestContext ctx) {
    /*here waterfallId was initialized*/
    ctx.setAttribute("waterfallId", waterfallId);
}

@Test()
public void testTwo(ItestContext ctx) {
    ctx.getAttribute("waterfallId"); //returns null
}

}

出了什么问题?还有其他方法可以解决问题吗?

3 个答案:

答案 0 :(得分:1)

首先应执行testOne方法,然后执行testTwo方法。如果以另一种方式执行,则在调用getAttribute方法时将获得null作为值。

为了确保在testTwo之前调用testOne,如下所示在testTwo方法中做了一些小改动。

@Test(dependsOnMethods = {"testOne"})
public void testTwo(ITestContext ctx) {
    System.out.println(ctx.getAttribute("waterfallId")); //returns null
}

答案 1 :(得分:0)

cxt.getAttribute(" waterfallId&#34); //返回null 将此更改为 ctx.getAttribute(" waterfallId&#34)

答案 2 :(得分:0)

它的ctx.getAttribute(" waterfallId")不是cxt.getAttribute(" waterfallId")

请参阅以下代码段:

public class Test1{  
    int waterfallId;

    @Test()
    public void testOne(ITestContext ctx) {
        waterfallId=100;
        ctx.setAttribute("waterfallId", waterfallId);
    }

    @Test()
    public void testTwo(ITestContext ctx) {
        ctx.getAttribute("waterfallId"); 
        System.out.println(ctx.getAttribute("waterfallId"));
    }
}

输出:100