TestNG的測試方法、測試組唾琼,異常

測試方法

測試方法被注解為@Test兄春。注釋的方法與@Test碰巧返回值將被忽略,可以設置允許回值設置為true在你的testng.xml:

<suite allow-return-values="true">
or
<test allow-return-values="true">

測試組

TestNG 允許將測試方法歸類為不同的組锡溯。
不僅僅是可以聲明某個方法屬于某個組赶舆,而且還可以讓組包含其他的組。
這樣TestNG可以調用或者請求包含一組特定的組(或者正則表達式)而排除其他不需要組的集合祭饭。
這樣芜茵,如果打算將測試分成兩份的時候,就無需重新編譯倡蝙。
這個特點九串,會給你在劃分組的時候帶來很大的靈活性。

組在的testng.xml文件中指定寺鸥,可以發(fā)現無論是<test><suite>標簽猪钮。指定組<suite>標簽適用于所有的<test>下方標簽。需要注意的是群體標簽:如果指定組的“a”在<suite>標簽中和b在<test>標簽中胆建,那么這兩個“a”和“b”將被包括在內

將測試劃分為兩種類別:

  • 檢查性測試(Check-in test):這些測試在你提交新代碼之前就會運行烤低。它們一般都是很快進行的,并且保證沒有哪個基本的功能是不好使的

  • 功能性測試(Functional test):這些測試涵蓋你的軟件中所有的功能笆载,并且至少每天運行一次扑馁,不過也可能希望他們持續(xù)的運行

典型的來說涯呻,檢測性測試通常是功能性測試的一個子集。TestNG允許你根據個人感覺來進行組劃分檐蚜。例如魄懂,你可能希望把你所有的測試類都劃歸為"functest"組,并且額外的有幾個方法輸入"checkintest"組闯第。

public class Test1 {
  @Test(groups = { "functest", "checkintest" })
  public void testMethod1() {
  }

  @Test(groups = {"functest", "checkintest"} )
  public void testMethod2() {
  }

  @Test(groups = { "functest" })
  public void testMethod3() {
  }
}

通過下面的內容調用TestNG

<test name="Test1">
  <groups>
    <run>
      <include name="functest"/>
    </run>
  </groups>
  <classes>
    <class name="example1.Test1"/>
  </classes>
</test>

以上會運行上面那個類中所有的測試市栗,當y要使用checkintest進行調用的時候,就僅僅運行testMethod1()和testMethod2()

使用正則表達式

@Test
public class Test1 {
  @Test(groups = { "windows.checkintest" })
  public void testWindowsOnly() {
  }

  @Test(groups = {"linux.checkintest"} )
  public void testLinuxOnly() {
  }

  @Test(groups = { "windows.functest" )
  public void testWindowsToo() {
  }
}

可以使用下面這個 testng.xml 來只運行在Windows下的方法:

<test name="Test1">
  <groups>
    <run>
      <include name="windows.*"/>
    </run>
  </groups>

  <classes>
    <class name="example1.Test1"/>
  </classes>
</test>

注意:TestNG使用的是正則表達式咳短,而不是通配符填帽。注意這二者的區(qū)別(例如,"anything" 是匹配于 "."代表點和星號咙好,而不是星號 "")

組中組

測試組也可以包含其他組篡腌。這樣的組叫做“元組"(MetaGroups)"

例如,可能要定義一個組"all"來包含其他的組勾效,"chekcintest""functest"嘹悼。"functest"本身只包含了組windowslinux,而"checkintest"僅僅包含windows层宫。你就可以在屬性文件中這樣定義:

<test name="Regression1">
  <groups>
    <define name="functest">
      <include name="windows"/>
      <include name="linux"/>
    </define>

    <define name="all">
      <include name="functest"/>
      <include name="checkintest"/>
    </define>

    <run>
      <include name="all"/>
    </run>
  </groups>

  <classes>
    <class name="test.sample.Test1"/>
  </classes>
</test>

排除組

stNG 允許你包含組杨伙,當然也可以排除

創(chuàng)建一個叫做"broken"組, 然后使得這些測試方法從屬于那個組萌腿。
例如上面的例子限匣,假設我知道testMethod2()會中斷,所以我希望使其失效:

@Test(groups = {"checkintest", "broken"} )
public void testMethod2() {
}

從運行中排除這個組:

<test name="Simple example">
  <groups>
    <run>
      <include name="checkintest"/>
      <exclude name="broken"/>
    </run>
  </groups>

  <classes>
    <class name="example1.Test1"/>
  </classes>
</test>

通過這種辦法毁菱,可以得到整潔的測試運行米死,同時也能夠跟蹤那些需要稍后修正的中斷的測試。

注意:你可以可以通過使用"enabled"屬性來完成贮庞,這個屬性適用于@Test@Before/After annotation

局部組

可以在類級別定義組峦筒,之后還可以在方法級定義組:

@Test(groups = { "checkin-test" })
public class All {

  @Test(groups = { "func-test" )
  public void method1() { ... }

  public void method2() { ... }
}

在這個類中,method2()類級組"checkin-test"的一部分窗慎,而method1()即屬于"checkin-test"也屬于"func-test"

異常

測試中勘天,有時候我們期望某些代碼拋出異常

TestNG通過@Test(expectedExceptions) 來判斷期待的異常, 并且判斷Error Message

import org.testng.Assert;
import org.testng.annotations.Test;

public class ExpectedExceptionTest {
    String message = "Manisha"; 
    MessageUtil messageUtil = new MessageUtil(message);
       
    @Test(expectedExceptions = ArithmeticException.class)
    public void testPrintMessage() {    
        System.out.println("Inside testPrintMessage()");     
        messageUtil.printMessage();     
   }
   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Manisha";
      Assert.assertEquals(message,messageUtil.salutationMessage());
   }
}
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末捉邢,一起剝皮案震驚了整個濱河市脯丝,隨后出現的幾起案子,更是在濱河造成了極大的恐慌伏伐,老刑警劉巖宠进,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異藐翎,居然都是意外死亡材蹬,警方通過查閱死者的電腦和手機实幕,發(fā)現死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堤器,“玉大人昆庇,你說我怎么就攤上這事≌⒗#” “怎么了整吆?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辉川。 經常有香客問我表蝙,道長,這世上最難降的妖魔是什么乓旗? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任府蛇,我火速辦了婚禮,結果婚禮上屿愚,老公的妹妹穿的比我還像新娘汇跨。我一直安慰自己,他們只是感情好妆距,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布穷遂。 她就那樣靜靜地躺著,像睡著了一般毅厚。 火紅的嫁衣襯著肌膚如雪塞颁。 梳的紋絲不亂的頭發(fā)上浦箱,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天吸耿,我揣著相機與錄音,去河邊找鬼酷窥。 笑死咽安,一個胖子當著我的面吹牛,可吹牛的內容都是我干的蓬推。 我是一名探鬼主播妆棒,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼沸伏!你這毒婦竟也來了糕珊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤毅糟,失蹤者是張志新(化名)和其女友劉穎红选,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體姆另,經...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡喇肋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年坟乾,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝶防。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡甚侣,死狀恐怖,靈堂內的尸體忽然破棺而出间学,到底是詐尸還是另有隱情殷费,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布菱鸥,位于F島的核電站宗兼,受9級特大地震影響,放射性物質發(fā)生泄漏氮采。R本人自食惡果不足惜殷绍,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鹊漠。 院中可真熱鬧主到,春花似錦、人聲如沸躯概。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娶靡。三九已至牧牢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間姿锭,已是汗流浹背塔鳍。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留呻此,地道東北人轮纫。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像焚鲜,于是被迫代替她去往敵國和親掌唾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內容

  • 感謝原作者的奉獻忿磅,原作者博客地址:http://blog.csdn.net/zhu_ai_xin_520/arti...
    狼孩閱讀 14,027評論 1 35
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理糯彬,服務發(fā)現,斷路器葱她,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 本文章轉載于搜狗測試 TestNG介紹 TestNG意為test next generation撩扒,是Java中的一...
    夜境閱讀 1,997評論 0 1
  • JUnit測試 TestNG 能夠運行 JUnit 測試。所有要做的工作就是在testng.classNames屬...
    我為峰2014閱讀 1,364評論 0 1
  • 發(fā)一個信息览效, 等一封回信却舀, 盼一個結局虫几, 思一段情意, 愿一種美好挽拔。 這樣不離不棄辆脸, 你還不回心轉意, 我不知道自...
    小劇在成長閱讀 144評論 2 7