Sky's blog

          我和我追逐的夢(mèng)

          常用鏈接

          統(tǒng)計(jì)

          其他鏈接

          友情鏈接

          最新評(píng)論

          TestNG官方文檔中文版(2)-annotation

              TestNG的官方文檔的中文翻譯版第二章,原文請(qǐng)見(jiàn) http://testng.org/doc/documentation-main.html

          2 - 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

          主站蜘蛛池模板: 呼伦贝尔市| 合山市| 安岳县| 三穗县| 江山市| 那曲县| 阳城县| 张掖市| 阳谷县| 凤台县| 通辽市| 定结县| 于田县| 昂仁县| 宁海县| 清远市| 嘉定区| 正宁县| 侯马市| 昌邑市| 陵水| 东乌| 葫芦岛市| 三门峡市| 乐陵市| 信阳市| 阜宁县| 宜兴市| 永修县| 义乌市| 富蕴县| 章丘市| 上虞市| 澳门| 始兴县| 佛冈县| 台北市| 项城市| 海兴县| 新巴尔虎左旗| 广州市|