2012-01-11 5 views
1

TestNGに基づいて独自のテストフレームワーク用のsuite.xmlを作成しています。私のXMLファイルは次のようになります:TestNG suite.xmlに含まれるメソッドのパラメータを指定する方法はありますか?

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="Suite" parallel="methods"> 
    <test name="NewTest"> 
    <parameter name="BROWSER" value="Chrome"></parameter> 
    <classes> 
    <class name="hm.NewTest"> 
    <methods> 
     <include name="test"></include> 
     <include name="test2"></include> 
     <include name="test3"></include> 
     <include name="test4"></include> 
    </methods> 
    </class> 
</classes> 
</test> 
</suite> 

パラメータ "BROWSER"が完全なテスト用に指定されました。しかし、私はそれぞれのメソッドのために独自のパラメータが必要です。誰もが解決策を知っていますか?

+0

誰も助けてくれませんか? – theBell

答えて

1

テストスイートxmlでパラメータを割り当てるのではなく、テストのパラメータを個別に割り当てることができます。そのためには、各パラメータをsuite.xmlに追加する必要はありません。これはあなたの6.4とアップをTestNGのいくつかの理由1

http://testng.org/doc/documentation-main.html#parameters

+0

TestNG.xmlファイルの構造を教えてください。これは、含まれているメソッドごとに違う値の同じパラメータを渡しますか? –

1

を助ける

@Parameters({ "datasource", "jdbcDriver" }) 
@test 
public void sampleTest(String ds, String driver) { 
// your test method 
} 

希望はもはやメソッド内のパラメータをサポートしていません。

しかし、もしあなたが6.3に戻ったら、それをサポートしている最後のバージョンだと思います。 私は同じ問題を持ち、私たちのフレームワークで働いていたことを思い出しています。だから私は一度に1つのバージョンを元に戻し始めました。彼らがそれを取り出した理由は私の外です。あなたができる6.3で

:リスナーコール

iTestContext.getCurrentXmlTest().getParameters() 

<methods> 
     <include name="test"> 
      <parameter name="Firefox"/> 
     </include> 
     <include name="test2"> 
      <parameter name="Chrome"/> 
     </include> 
     <include name="test3">...</include> 
     <include name="test4">...</include> 
</methods> 

とどこかには、それがお役に立てば幸いです。あまりにも遅い場合は、他の人のための良い情報かもしれません。

編集:I LIED!あなたはまだ最新のtestngでそれを得ることができます;)

iTestResult.getMethod().findMethodParameters(iTestContext.getCurrentXmlTest())