2009-03-31 19 views
11

DataProviderを使用する方法があるかどうか知る人は、@注釈を使用して同時にテストしますか?私たちのテストスイートには、@Parameterアノテーションを介してテストメソッドに渡されるいくつかの定数設定情報があります。ここで、DataProviderを使用して、一連のデータ値に対してこれらのテストを実行します。TestNG DataProviderとテストスイートのパラメータを使用できますか?

結果のパラメータの順序を決定するという内部的な問題は理解していますが、可能であればこの機能が必要です。

どのような考えですか?理想的な世界では

、私はこのような何か行うことができます:

@Test(dataprovider = "dataLoader") 
@Parameters("suiteParam") 
public void testMethod(String suiteParam, String fromDataParam) { 
... 
} 

答えて

8

をねえ、それは少し不格好かもしれないが、なぜあなたは、フィールド上にローカルsuiteParamを保存するために@BeforeClassメソッドを使用していませんそのようなテストクラスの。

private String suiteParam; 

@BeforeClass 
@Parameter("suiteParam") 
public void init(String suiteParam) { 
    this.suiteParam = suiteParam; 
} 

このようにして、通常の方法でデータプロバイダを使用することができますが、引き続きスイートパラメータにアクセスできます。

2

はい、使用する場合はTestNG's dependency injection capabiliesです。 DataProviderの定義済みのすべてのパラメータにアクセスできます。これはtest_paramパラメータを必要としているいくつかの例データプロバイダです:

@DataProvider(name = "usesParameter") 
public Object[][] provideTestParam(ITestContext context) { 
    String testParam = context.getCurrentXmlTest().getParameter("test_param"); 
    return new Object[][] {{ testParam }}; 
} 

あなたは、あなたのテストのために使用されているデータプロバイダで構成し、生成したパラメータを収集することができますこの方法です。 ITestContextクラスの詳細については、TestNG JavaDocを参照してください。

関連する問題