我试图使用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
}
}
出了什么问题?还有其他方法可以解决问题吗?
答案 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