2015-07-10 26 views
2

當我嘗試下面的代碼來執行這一點,我很困惑與試驗方法E的順序和A.dependsOnGroups順序,TestNG的

我的輸出順序爲C-> D-> E-> A->乙

public class Example5 
{ 

    @Test 
    public void A() 
    { 
     System.out.println("A"); 
    } 
    @Test(dependsOnGroups={"MM"}) 
    public void B() 
    { 
     System.out.println("B"); 
    } 
    @Test(groups={"MM"}) 

    public void C() 
    { 
     System.out.println("C"); 
    } 
    @Test(groups={"MM"}) 
    public void D() 
    { 
     System.out.println("D"); 
    } 
    @Test 
    public void E() 
    { 
     System.out.println("E"); 
    } 
} 

從輸出中,我可以看到測試方法c和d得到了前B法執行(這我可以理解),但我不明白的是E和A的方法的順序。

請解釋TestNG的是如何遵循這個代碼

回答

2
<suite name="Suite-A"> 
<test name="test"> 
    <classes > 
     <class name="stack1.LoginTest"></class> 
     <methods> 
      <include name="A" /> 
      <include name="E" /> 
      <include name="B" /> 
      <include name="C" /> 
      <include name="D" /> 
     </methods> 
    </classes> 
</test> 
</suite> 

使用此套件順序運行,其中方法明確地在課堂上提到。而且你可以看到這個輸出爲A > E > C > D > B。 我想這是你期待看到的。

如果你想設置的順序代碼,你可以使用@Test(priority = 1)您的方法。低優先級將首先安排。因此,例如-2會前1

如果你想preseve爲了多個類,在testng.xml文件套件使用group-by-instances="true"執行。


相關鏈接#1:

Cedric's博客:
http://beust.com/weblog/2008/03/29/test-method-priorities-in-testng/

TestNG的文檔:
http://testng.org/doc/documentation-main.html