2017-04-21 41 views
0

我們能有這樣的事情,其中​​的Test2的才能創造運行時數據提供程序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); 
} 

輸出可以打印所有在測試1添加到列表中的數值? 我有一種情況,我需要使用另一個測試生成的參數運行測試。請幫助。

+0

你可以參考下面的一個: http://stackoverflow.com/questions/3115822/passing-output-一個測試方法到另一個方法testng –

回答

0

是的,你可以做到這一點,如下所述。

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

由於很少TestNG的版本中,你甚至可以把它縮短:

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); 
    } 
} 
相關問題