您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > TestNG
單元測(cè)試框架TestNg使用總結(jié)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2015/2/3 15:17:09 ] 推薦標(biāo)簽:單元測(cè)試 TestNG

  單元測(cè)試的重要性是不言而喻的。但如果沒有好的單元測(cè)試工具,是無法激起開發(fā)人員的欲望。
  Testng便是利器之一。TestNG是基于Annotation的測(cè)試框架的先驅(qū),他擁有通過添加諸如靈活的裝置、測(cè)試分類、參數(shù)測(cè)試和依賴方法等特性來克服JUnit3的一些不足之處。下面我將總結(jié)一些TestNg的重要特性。
  關(guān)于testng.xml
  Testng.xml是以xml記錄所有測(cè)試的文件。它描述了測(cè)試套件的運(yùn)行時(shí)定義,也是testng中運(yùn)行測(cè)試的大工作單元。雖然沒有testng.xml文件,測(cè)試也很容易被執(zhí)行。但是隨著測(cè)試代碼的增長(zhǎng),testng.xml提供了方便用來存放所有運(yùn)行時(shí)的配置,如設(shè)置有關(guān)類,測(cè)試,方法,參數(shù),分組的包含與排除等。在測(cè)試類越來越多時(shí),它顯得非常重要。
  Testing.xml的主要結(jié)構(gòu)
  根標(biāo)簽是<suite>
<suite>標(biāo)簽包含一個(gè)或多個(gè)<test>標(biāo)簽
<test>標(biāo)簽包含一個(gè)或多個(gè)<classes>標(biāo)簽
<classes>標(biāo)簽包含一個(gè)或多個(gè)<method>標(biāo)簽
  一般來說,大多數(shù)文件詳細(xì)到<classes>標(biāo)簽即可。
  Testing.xml的額外標(biāo)簽
<packages>和<package>:顧名思義,它們可以指定一組java包,在這個(gè)標(biāo)簽中還可以用包含<include>或者排除<exclude>屬性。
<parameter>定義了參數(shù)名稱和值,它的使用是與測(cè)試類當(dāng)中@Parameters的注釋結(jié)合使用的,作用和@Dataprovider類似,提供外部參數(shù),功能不如@Dataprovider強(qiáng)大,有局限性。
<suite-files>和<suite-file>:它是用來引入其他testng.xml文件的,這些文件將于當(dāng)前文件一起執(zhí)行。
<groups>,<define>和<run>:這三個(gè)標(biāo)簽結(jié)合使用,在執(zhí)行時(shí)用來指定或者排除一部分的分組,以一個(gè)例子見分曉:
<groups>
<define name=”all”>
<include name=”test1”/>
<exclude name=”test2”/>
</define>
<run>
<include name=”all”/>
</run>
<groups>
  注意執(zhí)行測(cè)試的默認(rèn)順序是按照testng.xml里給定的順序執(zhí)行的。如果你不希望按此順序執(zhí)行,請(qǐng)使用preserve-order屬性指定為false。如<test name="Regression1" preserve-order="false">。關(guān)于testng.xml的標(biāo)簽詳細(xì)說明,可參見testng.xml的官方文檔。
  在實(shí)際開發(fā)時(shí),我建議testng.xml以功能點(diǎn)為粒度進(jìn)行劃分。然后以總的testng.xml將各個(gè)功能點(diǎn)的配置匯總起來。
  參數(shù)傳遞
  Testng改進(jìn)了傳統(tǒng)測(cè)試框架無法傳遞參數(shù)的缺點(diǎn),它能夠提供了想測(cè)試方法傳遞參數(shù)的簡(jiǎn)單兩種的方法:
  1,在測(cè)試方法上加@Parameters標(biāo)簽,然后在testng.xml給出參數(shù)。
  2,指定@Dataproviders。
  第一種方式的缺點(diǎn)很明顯,它只支持java基本類型,并且在構(gòu)造值時(shí),無法包含計(jì)算邏輯得到需要的參數(shù)。
  第二種方式可以想測(cè)試方法傳遞任何有效的java類型。我們傾向于第二種方法來構(gòu)造參數(shù)。
  在此,我們?cè)俳榻B一種傳遞參數(shù)的方式:工廠注釋@Factory,它不同于前面兩種參數(shù)傳遞。
  讓我們回顧一下普通的testng測(cè)試,這些測(cè)試類是無參數(shù)構(gòu)造方法(默認(rèn)構(gòu)造方法,無法接受參數(shù))的。@Factory的出現(xiàn),正是彌補(bǔ)這一缺陷而產(chǎn)生的。@Factory的方法在執(zhí)行時(shí)會(huì)被首先檢查并執(zhí)行,且只執(zhí)行一次。執(zhí)行完以后返回一個(gè)Object數(shù)組。這個(gè)數(shù)組里對(duì)象的內(nèi)容便是當(dāng)前測(cè)試方法帶了構(gòu)造函數(shù)的實(shí)例。在使用@Factory的同時(shí),該測(cè)試類還有一個(gè)對(duì)應(yīng)帶參數(shù)的構(gòu)造函數(shù),@Factory是為以構(gòu)造函數(shù)提供參數(shù)的形式提供了幫助。

上一頁12下一頁
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd