您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源單元測(cè)試工具 > TestNG
用TestNG進(jìn)行依賴測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2016/1/25 13:43:55 ] 推薦標(biāo)簽:單元測(cè)試工具 軟件測(cè)試工具

  創(chuàng)建TESTNG.XML
  創(chuàng)建一個(gè)文件 testng.xml 在 C: > TestNG_WORKSPACE 來執(zhí)行測(cè)試用例
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Suite1">
  <test name="test1">
  <classes>
  <class name="DependencyTestUsingAnnotation" />
  </classes>
  </test>
  </suite>
  編譯MessageUtil的測(cè)試用例類使用javac
  C:TestNG_WORKSPACE>javac MessageUtil.java DependencyTestUsingAnnotation.java
  現(xiàn)在運(yùn)行 testng.xml 這將會(huì)運(yùn)行 testSalutationMessage() 只有在執(zhí)行 ofinitEnvironmentTest() 方法之后
  C:TestNG_WORKSPACE>java -cp "C:TestNG_WORKSPACE" org.testng.TestNG testng.xml
  驗(yàn)證輸出
  This is initEnvironmentTest
  Inside testPrintMessage()
  Manisha
  Inside testSalutationMessage()
  Hi!Manisha
  ===============================================
  Suite1
  Total tests run: 3, Failures: 0, Skips: 0
  ===============================================
  示例,使用屬性dependsOnGroups
  也可以依賴于整個(gè)群組的方法。讓我們來看看下面的例子:
  創(chuàng)建一個(gè)類
  創(chuàng)建一個(gè)Java類進(jìn)行測(cè)試為 MessageUtil.java 在 C: > TestNG_WORKSPACE
public class MessageUtil {
private String message;
// Constructor
// @param message to be printed
public MessageUtil(String message) {
this.message = message;
}
// prints the message
public String printMessage() {
System.out.println(message);
return message;
}
// add "Hi!" to the message
public String salutationMessage() {
message = "Hi!" + message;
System.out.println(message);
return message;
}
}
  創(chuàng)建測(cè)試案例類
  創(chuàng)建一個(gè)Java測(cè)試類說依賴TestUsingAnnotation.java.
  添加測(cè)試方法 testPrintMessage(), testSalutationMessage() 和 initEnvironmentTest() 測(cè)試類和他們的組 "初始化"
  添加屬性 dependsOnMethods = { "init.*" } to the @Test 注釋 testSalutationMessage() 方法
  創(chuàng)建Java類文件名 DependencyTestUsingAnnotation.java 在 C: > TestNG_WORKSPACE
import org.testng.Assert;
import org.testng.annotations.Test;
public class DependencyTestUsingAnnotation {
String message = "Manisha";
MessageUtil messageUtil = new MessageUtil(message);
@Test(groups = { "init" })
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
message = "Manisha";
Assert.assertEquals(message, messageUtil.printMessage());
}
@Test(dependsOnGroups = { "init.*" })
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Manisha";
Assert.assertEquals(message, messageUtil.salutationMessage());
}
@Test(groups = { "init" })
public void initEnvironmentTest() {
System.out.println("This is initEnvironmentTest");
}
}
  在這個(gè)例子中,testSalutationMessage()被聲明為根據(jù)任何一組匹配正則表達(dá)式“的init*”,這保證了,一種方法,testPrintMessage的()和initEnvironmentTest()將始終前testSalutationMessage()被調(diào)用。
  如果一個(gè)方法失敗,取決于你有一個(gè)很難依賴于它(alwaysRun= false,這是默認(rèn)的),沒有標(biāo)記的方法依賴于它的失敗,但作為跳過。跳過的方法將被報(bào)告為例如在終報(bào)告(在HTML中,既不是紅也不是綠的顏色),這是很重要的,因?yàn)樘^的方法不一定是失敗。
  創(chuàng)建TESTNG.XML
  創(chuàng)建一個(gè)文件testng.xml C: > TestNG_WORKSPACE 執(zhí)行測(cè)試案例
  <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="Suite1">
  <test name="test1">
  <classes>
  <class name="DependencyTestUsingAnnotation" />
  </classes>
  </test>
  </suite>
  編譯MessageUtil的測(cè)試用例類使用javac
  C:TestNG_WORKSPACE>javac MessageUtil.java DependencyTestUsingAnnotation.java
  現(xiàn)在,運(yùn)行testng.xml,這將運(yùn)行testSalutationMessage()方法后,才執(zhí)行initEnvironmentTest()方法。
  C:TestNG_WORKSPACE>java -cp "C:TestNG_WORKSPACE" org.testng.TestNG testng.xml
  驗(yàn)證輸出
  This is initEnvironmentTest
  Inside testPrintMessage()
  Manisha
  Inside testSalutationMessage()
  Hi!Manisha
  ===============================================
  Suite1
  Total tests run: 3, Failures: 0, Skips: 0
  ===============================================
  dependsOnGroups Vs dependsOnMethods
  在使用組,我們不再面臨重構(gòu)的問題。只要我們不修改dependsOnGroups或組屬性,我們的測(cè)試將繼續(xù)運(yùn)行,設(shè)立適當(dāng)?shù)囊蕾嚒?br />   每當(dāng)一個(gè)新的方法需要添加依存關(guān)系圖中,我們需要做的是把它正確的組中,并確保它依賴于正確的組。我們不需要修改任何其他方法。

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