2016-09-16 82 views

回答

1

先測試後再上課。

@BeforeTest:將在運行屬於<test>標記內的類的任何測試方法之前運行帶註釋的方法。

@BeforeClass:註釋的方法將在當前類中的第一個測試方法被調用之前運行。
http://testng.org/doc/documentation-main.html#annotations

+0

好的,那麼課後和測試後呢?首先執行測試後? –

+0

是的。檢查這個片段,你可以得到這個想法,http://pastebin.com/sp8kceK3第1至第45行抽象類,45-76,2個類,每個測試2個,以及76至94個testng.xml。最後一個是控制檯輸出。我讀錯了,檢查更新的答案和片段。 –

1

註釋執行順序

  1. BeforeSuite
  2. BeforeTest
  3. BeforeClass
  4. BeforeMethod
  5. 測試
  6. AfterGroups
  7. 課餘
  8. AfterTest

您可以用僞代碼檢查:

public class TestAnnotationsPriorityOrder { 

public int i=0; 


@BeforeSuite 
public void beforeSuite(){ 
    i++; 
    System.out.println(i+"::BeforeSuite"); 
} 

@AfterSuite 
public void afterSuite(){ 
    i++; 
    System.out.println(i+"::AfterSuite"); 
} 

@BeforeTest 
public void beforeTest(){ 
    i++; 
    System.out.println(i+"::BeforeTest"); 
} 

@AfterTest 
public void afterTest(){ 
    i++; 
    System.out.println(i+"::AfterTest"); 
} 


@BeforeGroups 
public void beforeGroups(){ 
    i++; 
    System.out.println(i+"::BeforeGroups"); 
} 

@AfterGroups 
public void afterGroups(){ 
    i++; 
    System.out.println(i+"::AfterGroups"); 
} 


@BeforeClass 
public void beforeClass(){ 
    i++; 
    System.out.println(i+"::BeforeClass"); 
} 

@AfterClass 
public void afterClass(){ 
    i++; 
    System.out.println(i+"::AfterClass"); 
} 


@BeforeMethod 
public void beforeMethod(){ 
    i++; 
    System.out.println(i+"::BeforeMethod"); 
} 

@AfterMethod 
public void afterMethod(){ 
    i++; 
    System.out.println(i+"::AfterGroups"); 
} 


@Test 
public void TestMethod(){ 
    i++; 
    System.out.println(i+"::Test"); 
} 


} 
3

:方法與@BeforeTest註釋之前會比@BeforeClass註釋的方法調用。

TestNG註釋執行順序參照@Test和描述

  1. @BeforeSuite:被註釋的方法將在 所有測試此套件運行之前運行。
  2. @BeforeTest:將在運行屬於 標記內的類的任何測試方法之前運行帶註釋的方法。
  3. @BeforeGroups:此 配置方法將運行之前的組列表。此方法保證在 即將運行 之前,屬於這些組的第一個測試方法是調用 。
  4. @BeforeClass:註釋的方法將在當前類的第一個測試方法被調用之前運行。
  5. @BeforeMethod:註釋的方法將在每個測試方法之前運行。
  6. @Test:測試方法或類
  7. @AfterMethod:被註釋的方法將每個測試方法之後運行。
  8. @AfterClass:在當前類中的所有測試方法都運行之後,將會運行帶註釋的方法。
  9. @AfterGroups:此配置方法將運行之後的組列表。這種方法保證在最後一次測試方法後不久即可運行 ,這些方法屬於這些組中的任何一個,調用時爲 。
  10. @AfterTest:在所有屬於標籤內部類的測試方法都運行 後,將運行帶註釋的方法。
  11. @AfterSuite:在此套件中的所有測試都運行之後,將會運行帶註釋的方法。

有由TestNG提供各種其他註釋和不同類型 /參數可被傳遞給這些註解的屬性。對於 更多關於TestNG註釋follow this link