2015-06-14 29 views
0

方案依賴TestNG的方法: -運行使用@Factory

我TESTDATA是1)字符串A 2)串B 3)字符串C

現在我有類,其中我有數據提供者和工廠和數據 提供商3的值作爲字符串

public class TestParent { 

    public String tenant; 

    @Factory(dataProvider = "myList") 
    public TestParent(String s) { 
     tenant = s; 
    } 

    @DataProvider(name = "myList") 
    public Object[][] myList() { 
     List<String> s = new ArrayList<String>(); 
     s.add("A"); 
     s.add("B"); 
     s.add("C"); 
     Object[][] objArray = new Object[s.size()][]; 

     for (int i = 0; i < s.size(); i++) { 
      objArray[i] = new Object[1]; 
      objArray[i][0] = s.get(i); 
     } 
     return objArray; 
    } 

    @Test() 
    public void setup() { 
     System.out.print(tenant); 
     System.out.print("\n"); 
    } 

    @Test(dependsonMethod = setup) 
    public void beforeclass() { 
     System.out.print("Hello"); 
     System.out.print(tenant); 
     System.out.print("\n"); 
    } 

    @Test(dependsonMethod = beforeclass) 
    public void afterclass() { 
     System.out.print("BYE"); 
     System.out.print(tenant); 
     System.out.print("\n"); 
    } 

    @Test(dependsonMethod = afterclass) 
    public void mm() { 
     System.out.print("YES"); 
     System.out.print(tenant); 
     System.out.print("\n"); 
    } 
} 

輸出I想


HelloA
BYEA
耶撒

HelloB
BYEB
YESB
Ç
HelloC
BYEC
YESC

回答

0

創建兩個單獨的類FactoryClass和TestDataClass,然後從textng運行FactoryClass。 xml

FactoryClass:

public class FactoryClass { 

    @Factory(dataProvider = "myList") 
    public Object[] createInstances(String str) { 
     return new Object[] {new TestData(str)}; 
    } 

    @DataProvider(name = "myList") 
    static public Object[][] myList(){ 
    return new Object[][] { 
     new Object[] { new String("A") }, 
     new Object[] { new String("B") }, 
     }; 
    } 
} 

TestDataClass:

public class TestData { 

    private String tenant; 

    public TestData(String s) 
    { 
     this.tenant=s; 
    } 

    @Test() 
    public void setup() 
    { 
     System.out.print(tenant); 
     System.out.print("\n"); 
    } 

    @Test(dependsOnMethods="setup") 
    public void beforeclass() 
    { 
     System.out.print("Hello"); 
     System.out.print(tenant); 
     System.out.print("\n"); 

    } 

    @Test(dependsOnMethods="beforeclass") 
    public void afterclass() 
    { 
     System.out.print("BYE"); 
     System.out.print(tenant); 
     System.out.print("\n"); 
    } 

    @Test(dependsOnMethods="afterclass") 
    public void mm() 
    { 
     System.out.print("YES"); 
     System.out.print(tenant); 
     System.out.print("\n"); 

    } 

} 

XML文件:

<suite name="StackNew" verbose="1"> 
<test name="test" group-by-instances="true"> 
    <classes> 
     <class name="stack.FactoryClass"></class> 
    </classes> 
</test> 
</suite> 

如果面部序列問題:Link

+0

由於它的工作缺失的概念組逐實例。 –

相關問題