您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > TestNG
TestNG之參數(shù)化測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2015/7/28 14:45:37 ] 推薦標(biāo)簽:軟件測試工具 單元測試

  運行testng.xml,結(jié)果如下:
  name:dadaorufeng,age:29
  name:zhangsan,age:28
  剛才這段代碼,定義數(shù)據(jù)源和使用數(shù)據(jù)源的代碼在同一個class中,如果不在同一個class的話,怎么辦呢?parameterizedTest2.java中定義數(shù)據(jù)源,
parameterizedTest3.java使用數(shù)據(jù)源
parameterizedTest2.java
import org.testng.annotations.DataProvider;
public class parameterizedTest2 {
// 定義數(shù)據(jù)源
@DataProvider(name = "test")
public static Object[][] createData() {
return new Object[][]{{"dadaorufeng",29},{"zhangsan",28}};
}
}
parameterizedTest3.java
import org.testng.annotations.Test;
public class parameterizedTest3 {
// 使用數(shù)據(jù)源
@Test(dataProvider = "test")
public void verifyData(String name, int age) {
System.out.println("name:" + name + ",age:" + age);
}
}
testng.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1" preserve-order="true">
<classes>
<class name="parameterizedTest3"></class>
</classes>
</test>
</suite>
  直接運行testng.xml,結(jié)果如下,報錯找不到test的@DataProvider :
org.testng.TestNGException:
Method public void parameterizedTest3.verifyData(java.lang.String,int) requires a @DataProvider named : test
at org.testng.internal.Parameters.findDataProvider(Parameters.java:268)
at org.testng.internal.Parameters.handleParameters(Parameters.java:381)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1315)
at org.testng.internal.Invoker.createParameters(Invoker.java:1022)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1122)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
at org.testng.TestRunner.privateRun(TestRunner.java:749)
at org.testng.TestRunner.run(TestRunner.java:600)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274)
at org.testng.SuiteRunner.run(SuiteRunner.java:223)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
at org.testng.TestNG.run(TestNG.java:900)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:110)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:174)
  修改parameterizedTest3.java,添加dataProviderClass = parameterizedTest2.class屬性,指定數(shù)據(jù)源所在的類
  import org.testng.annotations.Test;
  public class parameterizedTest3 {
  // 使用數(shù)據(jù)源
  @Test(dataProvider = "test",dataProviderClass = parameterizedTest2.class)
  public void verifyData(String name, int age) {
  System.out.println("name:" + name + ",age:" + age);
  }
  }
  再次運行testng.xml,結(jié)果如下,測試通過:
  name:dadaorufeng,age:29
  name:zhangsan,age:28

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