junit 單元測試
testng 一定程度上是 整合測試
testng
中用到的
annotation
的快速預覽,還有它們的屬性。
@beforesuite: 被注釋的方法將在所有測試執行前執行
@aftersuite: 被注釋的方法將在所有測試執行後執行
@beforetest: 被注釋的方法將在測試執行前執行
@aftertest: 被注釋的方法將在測試執行後執行
@beforegroups: 被配置的方法將在列表中的gourp前執行。這個方法保證在第乙個屬於這些組的測試方法呼叫前立即執行。
@aftergroups: 被配置的方法將在列表中的gourp後執行。這個方法保證在最後乙個屬於這些組的測試方法呼叫後立即執行。
@beforeclass: 被注釋的方法將在當前類的第乙個測試方法呼叫前執行。
@afterclass: 被注釋的方法將在當前類的所有測試方法呼叫後執行。
@beforemethod: 被注釋的方法將在每乙個測試方法呼叫前執行。
@aftermethod: 被注釋的方法將在每乙個測試方法呼叫後執行。
屬性:alwaysrun 對於每個bufore方法(beforesuite, beforetest, beforetestclass 和beforetestmethod, 但是不包括beforegroups):
如果設定為true,被配置的方法將總是執行而不管它屬於哪個組。
對於after方法(aftersuite, afterclass, ...): 如果設定為true,被配置的方法甚至在乙個或多個先呼叫的方法失敗或被忽略時也將執行。
dependsongroups 這個方法依賴的組列表
dependsonmethods 這個方法依賴的方法列表
enabled 這個類的方法是否啟用
groups 這個類或方法所屬的分組列表
inheritgroups 如果設定為true,這個方法被屬於在類級別被@test annotation指定的組
@dataprovider 標記乙個方法用於為測試方法提供資料。
被注釋的方法必須返回object, 其中每個object可以指派為這個測試方法的引數列表。
從這個dataprovider接收資料@test方法需要使用乙個和當前注釋相同名稱的dataprovider名稱
name 這個dataprovider的名稱
@factory 標記方法作為乙個返回物件的工廠,這些物件將被testng用於作為測試類。這個方法必須返回object
@parameters 描述如何傳遞引數給@test方法
value 用於填充這個方法的引數的變數列表
@test 標記乙個類或方法作為測試的一部分
alwaysrun 如果設定為true,這個測試方法將總是執行,甚至當它依賴的方法失敗時。
dataprovider 這個測試方法的data provider的名稱
dataproviderclass 用於查詢data provider的類。
如果不指定,將在當前測試方法所在的類或者它的基類上查詢data provider。
如果這個屬性被指定, 則data provider方法需要是指定類的static方法。
dependsongroups 當前方法依賴的組列表
dependsonmethods 當前方法依賴的方法列表
description 當前方法的描述
enabled 當前類的方法/方法是否被啟用
expectedexceptions 測試方法期望丟擲的異常列表。如果沒有異常或者丟擲的不是列表中的任何乙個,當前方法都將標記為失敗.
groups 當前類/方法所屬的組列表
invocationcount 當前方法被呼叫的次數
successpercentage 當前方法期望的成功率
sequential 如果設定為true,當前測試類上的所有方法保證按照順序執行。甚至測試們在parallel="true"的情況下.
這個屬性只能用於類級別,如果用於方法級別將被忽略。
timeout 當前方法容許花費的最大時間,單位毫秒。
threadpoolsize 當前方法的執行緒池大小。方法將被多執行緒呼叫,次數由invocationcount引數指定
注意:如果invocationcount沒有指定則這個屬性將被忽略
注:上面是testng中用到的annotation列表,從中我們可以看到testng提供的一些特性
1. before方法和after方法帶來了足夠豐富的測試生命週期控制
2. dependsongroups/dependsonmethods 提供了依賴檢查機制,並可以嚴格控制執行順序
3. dataprovider 使得對同乙個方法的測試覆蓋變的非常輕鬆,非常適合進行邊界測試,只要給出多種測試資料就可以針對乙個測試方法進行覆蓋
4. expectedexceptions 使得異常測試變的非常輕鬆
5. invocationcount/threadpoolsize 終於可以簡單的直接進行多執行緒測試了,這個絕對是junit的超級弱項,回想junit中那個萬惡的system.exist(0)...
6. timeout 終於不用死等然後手工強行關閉測試,testng想的太周到了
testng官方文件中文版(3)-testng.xml
testng的官方文件的中文翻譯版第3章,原文請見
參考:
TestNG系列(二)TestNG註解
前言 tetsng提供了很多註解,允許測試人員靈活地組織測試用例 一 test tets是testng的核心註解,被註解的方法,表示為乙個測試方法。description屬性 test description yuhao public void case1 在測試報告中體現出來 enabled屬性 ...
詳解TestNg中的依賴和併發
我在之前的文章十分鐘上手testng講解了testng的基礎功能使用,今天給大家介紹一下testng框架中兩個非常重要的功能 依賴和併發。這也是它強於junit4的兩個重點!依賴 testng的依賴主要包括方法的依賴和組的依賴。dependsonmethods在被依賴的方法執行完成之後執行當前方法,...
shell 多行注釋詳解
在我們寫 shell 指令碼的時候,特別在除錯的時候經常需要注釋多行命令,但在每一行前輸入 顯得有些麻煩。基於 shell 命令的靈活性,我們可以使用下面的方法 方法一 這是比較穩妥的作法 可以採用here document特性,實現多行注釋,比如 comment comment舉例如下 bin b...