我一直在使用TestNG,並且有兩個註釋問題,@BeforeTest
和@BeforeClass
。我想知道兩者是否都會先應用?TestNG:@BeforeClass和@BeforeTest的優先級
1
A
回答
1
先測試後再上課。
@BeforeTest
:將在運行屬於<test>
標記內的類的任何測試方法之前運行帶註釋的方法。
@BeforeClass
:註釋的方法將在當前類中的第一個測試方法被調用之前運行。
http://testng.org/doc/documentation-main.html#annotations
1
註釋執行順序:
- BeforeSuite
- BeforeTest
- BeforeClass
- BeforeMethod
- 測試
- AfterGroups 個
- 課餘
- 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
和描述:
- @BeforeSuite:被註釋的方法將在 所有測試此套件運行之前運行。
- @BeforeTest:將在運行屬於 標記內的類的任何測試方法之前運行帶註釋的方法。
- @BeforeGroups:此 配置方法將運行之前的組列表。此方法保證在 即將運行 之前,屬於這些組的第一個測試方法是調用 。
- @BeforeClass:註釋的方法將在當前類的第一個測試方法被調用之前運行。
- @BeforeMethod:註釋的方法將在每個測試方法之前運行。
- @Test:測試方法或類
- @AfterMethod:被註釋的方法將每個測試方法之後運行。
- @AfterClass:在當前類中的所有測試方法都運行之後,將會運行帶註釋的方法。
- @AfterGroups:此配置方法將運行之後的組列表。這種方法保證在最後一次測試方法後不久即可運行 ,這些方法屬於這些組中的任何一個,調用時爲 。
- @AfterTest:在所有屬於標籤內部類的測試方法都運行 後,將運行帶註釋的方法。
- @AfterSuite:在此套件中的所有測試都運行之後,將會運行帶註釋的方法。
有由
TestNG
提供各種其他註釋和不同類型 /參數可被傳遞給這些註解的屬性。對於 更多關於TestNG
註釋follow this link
相關問題
- 1. TestNg使用dependsOnMethods和優先級違反優先
- 2. FAILED CONFIGURATION:@BeforeTest beforeTest。 MAVEN; TestNG,硒
- 3. TestNG的@Factory優先
- 4. 優先級隊列中的優先級
- 5. Upstart和init.d的優先級
- 6. 失敗配置:@BeforeTest beforeTest上運行該代碼TestNG的
- 7. 優先上傳優先級,以高優先級使用HTB qdiscs
- 8. Repast Symphony調度方法優先級和代理優先級
- 9. Apache和RewriteRule優先級
- 10. ActiveMQ的優先級
- 11. TestNG方法執行默認優先級序列
- 12. 流程優先與線程優先級
- 13. 在JUnit中相當於TestNG @BeforeTest
- 14. 爲優先級較高的元素和其他優先級較低的元素排序優先隊列
- 15. C++函數中非常奇怪的優先級/優先級
- 16. 如何確定terraform執行優先級的優先級
- 17. 新近度是次要優先級的優先級隊列?
- 18. 具有動態項目優先級的優先級隊列
- 19. 優先級隊列的優先級總是需要是整數?
- 20. 優先級:圖像
- 21. CSS類優先級
- 22. 線程優先級
- 23. 基於優先級
- 24. 優先級隊列
- 25. 優先級反轉
- 26. 優先級反轉
- 27. JQuery和Facebook API函數優先級/優先
- 28. CSS和jQuery的優先級問題
- 29. -D MACRO和#define MACRO的優先級
- 30. CouchDB和PouchDB同步中的優先級
好的,那麼課後和測試後呢?首先執行測試後? –
是的。檢查這個片段,你可以得到這個想法,http://pastebin.com/sp8kceK3第1至第45行抽象類,45-76,2個類,每個測試2個,以及76至94個testng.xml。最後一個是控制檯輸出。我讀錯了,檢查更新的答案和片段。 –