2016-09-26 3 views
0

私は1つのテストからITestContextを使用して別のPARAMを渡すためにしようとしている:ITestContextを使用して、他の1つの試験からのparamを渡すことができません:ヌル(TestNGの+ Javaの)を返します

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

cxt.getAttribute( "waterfallId"); //戻り、それはスニペット下記をご参照くださいctx.getAttribute( "waterfallId")ではないcxt.getAttribute( "waterfallId")

だctx.getAttribute( "waterfallId")

0

にこの 変更をヌル:

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

1

あなたTESTONE方法は、最初にしてtestTwoメソッドを実行する必要があります。別の方法で実行されると、getAttributeメソッドを呼び出すときに値としてnullが返されます。

testTwoが以下のような小さな変更を加える前に、testOneが呼び出されることを確認してください。

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