TestNG官方文檔中文版(2)-annotation
TestNG的官方文檔的中文翻譯版第二章,原文請(qǐng)見(jiàn) http://testng.org/doc/documentation-main.html2 - Annotation
這里是TestNG中用到的annotation的快速預(yù)覽,還有它們的屬性。
@BeforeSuite: 被注釋的方法將在所有測(cè)試運(yùn)行前運(yùn)行
@AfterSuite: 被注釋的方法將在所有測(cè)試運(yùn)行后運(yùn)行
@BeforeTest: 被注釋的方法將在測(cè)試運(yùn)行前運(yùn)行
@AfterTest: 被注釋的方法將在測(cè)試運(yùn)行后運(yùn)行
@BeforeGroups: 被配置的方法將在列表中的gourp前運(yùn)行。這個(gè)方法保證在第一個(gè)屬于這些組的測(cè)試方法調(diào)用前立即執(zhí)行。
@AfterGroups: 被配置的方法將在列表中的gourp后運(yùn)行。這個(gè)方法保證在最后一個(gè)屬于這些組的測(cè)試方法調(diào)用后立即執(zhí)行。
@BeforeClass: 被注釋的方法將在當(dāng)前類(lèi)的第一個(gè)測(cè)試方法調(diào)用前運(yùn)行。
@AfterClass: 被注釋的方法將在當(dāng)前類(lèi)的所有測(cè)試方法調(diào)用后運(yùn)行。
@BeforeMethod: 被注釋的方法將在每一個(gè)測(cè)試方法調(diào)用前運(yùn)行。
@AfterMethod: 被注釋的方法將在每一個(gè)測(cè)試方法調(diào)用后運(yùn)行。
屬性:
alwaysRun 對(duì)于每個(gè)bufore方法(beforeSuite, beforeTest, beforeTestClass 和 beforeTestMethod, 但是不包括 beforeGroups):
如果設(shè)置為true,被配置的方法將總是運(yùn)行而不管它屬于哪個(gè)組。
對(duì)于after方法(afterSuite, afterClass, ...): 如果設(shè)置為true,被配置的方法甚至在一個(gè)或多個(gè)先調(diào)用的方法失敗或被忽略時(shí)也將運(yùn)行。
dependsOnGroups 這個(gè)方法依賴(lài)的組列表
dependsOnMethods 這個(gè)方法依賴(lài)的方法列表
enabled 這個(gè)類(lèi)的方法是否激活
groups 這個(gè)類(lèi)或方法所屬的分組列表
inheritGroups 如果設(shè)置為true,這個(gè)方法被屬于在類(lèi)級(jí)別被@Test annotation指定的組
@DataProvider 標(biāo)記一個(gè)方法用于為測(cè)試方法提供數(shù)據(jù)。
被注釋的方法必須返回Object[][], 其中每個(gè)Object[]可以指派為這個(gè)測(cè)試方法的參數(shù)列表。
從這個(gè)DataProvider接收數(shù)據(jù)@Test方法需要使用一個(gè)和當(dāng)前注釋相同名稱(chēng)的dataProvider名稱(chēng)
name 這個(gè)DataProvider的名稱(chēng)
@Factory 標(biāo)記方法作為一個(gè)返回對(duì)象的工廠,這些對(duì)象將被TestNG用于作為測(cè)試類(lèi)。這個(gè)方法必須返回Object[]
@Parameters 描述如何傳遞參數(shù)給@Test方法
value 用于填充這個(gè)方法的參數(shù)的變量列表
@Test 標(biāo)記一個(gè)類(lèi)或方法作為測(cè)試的一部分
alwaysRun 如果設(shè)置為true,這個(gè)測(cè)試方法將總是運(yùn)行,甚至當(dāng)它依賴(lài)的方法失敗時(shí)。
dataProvider 這個(gè)測(cè)試方法的data provider的名稱(chēng)
dataProviderClass 用于查找data provider的類(lèi)。
如果不指定,將在當(dāng)前測(cè)試方法所在的類(lèi)或者它的基類(lèi)上查找data provider。
如果這個(gè)屬性被指定, 則data provider方法需要是指定類(lèi)的static方法。
dependsOnGroups 當(dāng)前方法依賴(lài)的組列表
dependsOnMethods 當(dāng)前方法依賴(lài)的方法列表
description 當(dāng)前方法的描述
enabled 當(dāng)前類(lèi)的方法/方法是否被激活
expectedExceptions 測(cè)試方法期望拋出的異常列表。如果沒(méi)有異常或者拋出的不是列表中的任何一個(gè),當(dāng)前方法都將標(biāo)記為失敗.
groups 當(dāng)前類(lèi)/方法所屬的組列表
invocationCount 當(dāng)前方法被調(diào)用的次數(shù)
successPercentage 當(dāng)前方法期望的成功率
sequential 如果設(shè)置為true,當(dāng)前測(cè)試類(lèi)上的所有方法保證按照順序運(yùn)行。甚至測(cè)試們?cè)趐arallel="true"的情況下.
這個(gè)屬性只能用于類(lèi)級(jí)別,如果用于方法級(jí)別將被忽略。
timeOut 當(dāng)前方法容許花費(fèi)的最大時(shí)間,單位毫秒。
threadPoolSize 當(dāng)前方法的線(xiàn)程池大小。方法將被多線(xiàn)程調(diào)用,次數(shù)由invocationCount參數(shù)指定
注意:如果invocationCount沒(méi)有指定則這個(gè)屬性將被忽略
注:
上面是TestNG中用到的annotation列表,從中我們可以看到TestNG提供的一些特性
1. before方法和after方法 帶來(lái)了足夠豐富的測(cè)試生命周期控制
2. dependsOnGroups/dependsOnMethods 提供了依賴(lài)檢查機(jī)制,并可以嚴(yán)格控制執(zhí)行順序
3. DataProvider 使得對(duì)同一個(gè)方法的測(cè)試覆蓋變的非常輕松,非常適合進(jìn)行邊界測(cè)試,只要給出多種測(cè)試數(shù)據(jù)就可以針對(duì)一個(gè)測(cè)試方法進(jìn)行覆蓋
4. expectedExceptions 使得異常測(cè)試變的非常輕松
5. invocationCount/threadPoolSize 終于可以簡(jiǎn)單的直接進(jìn)行多線(xiàn)程測(cè)試了,這個(gè)絕對(duì)是junit的超級(jí)弱項(xiàng),回想junit中那個(gè)萬(wàn)惡的System.exist(0)...
6. timeOut 終于不用死等然后手工強(qiáng)行關(guān)閉測(cè)試,TestNG想的太周到了
posted on 2008-03-19 23:22 sky ao 閱讀(2650) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): software test