1

TestNGに基づく独自のtestframework用にsuite.xmlを作成しています。私の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」が指定されました。ただし、含まれているメソッドごとに独自のパラメーターが必要です。誰かが解決策を知っていますか?

4

2 に答える 2

1

このために、テストスイートxmlでパラメーターを割り当てるのではなく、テストのパラメーターを個別に割り当てることができます。そのため、suite.xmlに各パラメーターを追加する必要はありません。

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

これがお役に立てば幸いです1

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

于 2012-01-26T06:57:11.553 に答える
1

何らかの理由で、testng6.4以降はメソッド内のパラメーターをサポートしなくなりました。

しかし、6.3に戻すと、それをサポートした最後のバージョンだと思います。私は同じ問題を抱えており、それが私たちのフレームワークで機能していたことを思い出しました。そのため、一度に1つのバージョンに戻し始めました。彼らがそれを取り出した理由は私を超えています。

6.3を使用すると、次のことができます。

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

そしてどこかでリスナーの呼び出し

iTestContext.getCurrentXmlTest().getParameters()

それが役に立てば幸い。あなたにとって遅すぎるなら、多分他の誰かのための良い情報。

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

iTestResult.getMethod().findMethodParameters(iTestContext.getCurrentXmlTest())
于 2015-05-08T21:01:26.573 に答える