2016-07-25 10 views
0

私はtestNGフレームワークを使用しています。私はパラメータを持つことができるかどうかのテストを持っています。 exempleによって 私は、次のXMLかもしれない:TestNG、0またはxmlファイルの複数のパラメータ

<?xml version="1.0" encoding="UTF-8"?> 
    <suite name="Suite" parallel="tests"> 
    <test name="FlowTest0"> 
     <parameter name="node" value="http://192.168.117.135:5555/wd/hub"/> 
     <parameter name="name" value="nameTest0"/> 
     <parameter name="direction" value="IN"/> 
     <classes> 
      <class name="selenium.test.flow.FlowSaveTest"/> 
     </classes> 
    </test> 
    </suite> 

または私はこの1かもしれない:

<?xml version="1.0" encoding="UTF-8"?> 
    <suite name="Suite" parallel="tests"> 
    <test name="FlowTest0"> 
     <parameter name="node" value="http://192.168.117.135:5555/wd/hub"/> 
     <classes> 
      <class name="selenium.test.flow.FlowSaveTest"/> 
     </classes> 
    </test> 
    </suite> 

全部またはより多くのパラメータなしに。 はその後、私のテストケースでは、私はパラメータをこのように得る:私が欲しいもの

@Parameters({"name", "direction"}) 
public void initTest(String name, String direction) { 
    //code of the method 
} 

は私がXMLで持っているものによって値の可変数を渡すことができるようにすることです。 testNGパラメータの注釈でこれを行うことはできますか?

EDIT 1:

私はC言語でのprintf宣言の宣言のようなものを期待する、のようなもの:あなたはITestContextinject、そこからすべての属性を取得することができます

@Parameters("node", Something that will get all the paramaters) 
@BeforeTest 
public void initTest(Object ...) { 

} 
+1

あなたは、あなたが期待しているものの例を見せてもらえますか? – juherr

+0

はい私は自分の質問を編集します –

答えて

2

@Test 
public void initTest(ITestContext context) { 
    Map<String, String> params = context.getCurrentXmlTest().getAllParameters(); 
    // ... 
} 
+0

私は間違いを犯しました、initTestも@BeforeTestアノテーションを持っています。おそらく何か変わってしまいます。 –

+1

'@ BeforeTest'でも使えます。 – juherr

+0

しかし、パラメータが文字列でない場合はどうなりますか?私の前では、私のメソッドでは、ブール値であって文字列だけでなく、いくつかの引数を持っていたので、 –

関連する問題