2017-04-21 25 views
0

に時間のdataProviderを実行して作成でき、私たちは、Test2をの出力は、Test1の中リストに追加したすべての値を印刷することができは、我々はTestNGの

public class NewTest { 
private List<String> id= new ArrayList<String>(); 

@Test 
public void Test1() { 

    id.add("First Value"); 
    id.add("Second Value"); 
    id.add("Third Value"); 
    id.add("Fourth Value"); 

    System.out.println("Added all the data to the list"); 
} 

@DataProvider 
public Object[][] dp() { 
    Object[][] returnData= new String[1][]; 

    for (int i=0; i<id.size();i++){ 
     returnData[0][i]=id.get(i); 
    } 

    return returnData; 
} 


@Test(dataProvider = "dp", priority=1) 
public void Test2(String s) { 

    System.out.println(s); 
} 

このようなものを持つことができますか? 私は状況があり、別のテストから生成されたパラメータでテストを実行する必要があります。親切に助けてください。

+0

あなたは以下のいずれかを参照することができます http://stackoverflow.com/questions/3115822/passing-output-別の方法のテストに –

答えて

0

はい、あなたは以下のようにそれを行うことができます。

少数TestNGのバージョン以来
import java.util.ArrayList; 
import java.util.List; 

import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 

public class runTimeDataProvider { 

    private List<String> id= new ArrayList<String>(); 

    @Test 
    public void Test1() { 

     id.add("First Value"); 
     id.add("Second Value"); 
     id.add("Third Value"); 
     id.add("Fourth Value"); 

     System.out.println("Added all the data to the list"); 
    } 

    @DataProvider 
    public Object[][] dp() { 
     Object[][] returnData= new String[1][4]; 

     for (int i=0; i<id.size();i++){ 
      returnData[0][i]=id.get(i); 
      System.out.println(returnData[0][i]); 
     } 

     return returnData; 
    } 


    @Test(dataProvider = "dp", priority=1) 
    public void Test2(String s1,String s2,String s3,String s4) { 

     System.out.println(s1+" "+s2+" "+s3+" "+s4); 

    } 
} 
+0

あなたの迅速な返信のために感謝Akarsh。私は愚かな点で逃しました:) – NiNa

+0

それがあなたのために働くなら答えを受け入れます@NiNa – Akarsh

0

、あなたもそれを短くすることができます。

public class RunTimeDataProvider { 

    private final List<String> id = new ArrayList<>(); 

    @Test 
    public void test1() { 
    id.add("First Value"); 
    id.add("Second Value"); 
    id.add("Third Value"); 
    id.add("Fourth Value"); 

    System.out.println("Added all the data to the list"); 
    } 

    @DataProvider 
    public Iterator<String> dp() { 
    return id.iterator(); 
    } 

    @Test(dataProvider = "dp", dependsOnMethods = "test1") 
    public void test2(String s) { 
    System.out.println(s); 
    } 
}