2012-10-10 1 views
5

私はTestNGのXML設定ファイル内のパラメータを読み込むための2つの方法があることが判明:@ParameterアノテーションまたはITestContextを使用してTestNGコンフィグレーションファイルを読み込みますか?

  1. 使用@Parameter注釈は、テストクラスの引数として注釈

  2. 使用ITestContext後にパラメータ名を定義します、DataProviderまたはFactoryを使用し、getCurrentXmlTest()およびgetParameter()を使用してパラメータを読み取ります。

これらの方法のいずれかが他の理由で優先されますか。それを行うための他の方法がありますか?

答えて

3

私はその違いが範囲だと思います。たとえば、すべてのテストスイートで同じパラメータが必要な場合私は非常に特定の必要がある場合は、ENV変数は、私は、(スイートスコープ用)ITestListenerまたはISuiteListenerを実装するリスナーにそれを使用して、しかし<test>下または<suite>

の下にすべての私のテスト間で値を適用するITestContext/Suitecontextを使用します特定のテストケースに対して@Parameterアノテーションを付けることにしました。

また@Parameterは単純な値しか取ることができないので、テストではいくつかのパラメータ値に基づいて文字列ではなく異なるオブジェクトが必要になるケースがあります。その場合、私はdataproviderを好むでしょう、param値を読んで(あなたの2番目のオプション、私は思うtestclassの引数が間違っていますが)、オブジェクトを作成し、テストにそれを与える。 (例えば、おそらくプロパティファイルの名前は、プロパティファイル内のデータに基づいて読み込まれ、テストに異なるテストデータとして供給されるオブジェクトであるparam値です)。

関連する問題