testNG注釋詳解

2021-08-10 03:27:55 字數 2869 閱讀 1547

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