DataProvider 传递参数

 1 package roger.testng;
 2 
 3 import org.testng.annotations.DataProvider;
 4 import org.testng.annotations.Test;
 5 
 6 public class TestDataProviderParameter {
 7     @DataProvider(name = "test1")
 8     public Object[][] testData() {
 9         return new Object[][] {
10                 {"roger1", 26},
11                 {"roger2", 27},
12                 {"roger3", 28},
13         };
14     }
15     
16     @Test(dataProvider = "test1")
17     public void testParameter(String name, int age) {
18         System.out.println("name: " + name + ", age: " + age);
19     }
20 }

执行结果:

 1 [TestNG] Running:
 2   C:\Users\Administrator\AppData\Local\Temp\testng-eclipse--794089435\testng-customsuite.xml
 3 
 4 name: roger1, age: 26
 5 name: roger2, age: 27
 6 name: roger3, age: 28
 7 PASSED: testParameter("roger1", 26)
 8 PASSED: testParameter("roger2", 27)
 9 PASSED: testParameter("roger3", 28)
10 
11 ===============================================
12     Default test
13     Tests run: 3, Failures: 0, Skips: 0
14 ===============================================
15 
16 
17 ===============================================
18 Default suite
19 Total tests run: 3, Failures: 0, Skips: 0
20 ===============================================
21 
22 [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 1 ms
23 [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@9cdc393: 45 ms
24 [TestNG] Time taken by org.testng.reporters.EmailableReporter2@6cf1156e: 5 ms
25 [TestNG] Time taken by org.testng.reporters.jq.Main@4ae523ed: 46 ms
26 [TestNG] Time taken by org.testng.reporters.XMLReporter@6d45ca41: 7 ms
27 [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@923ef32: 25 ms

 

@DataProvider 的 name 属性是可选的,如果不指定它,就会默认使用方法的名称。
如上代码中不指定 name 的名称,则默认是 @DataProvider(name = "testData")

posted @ 2014-07-17 11:18  Roger|  阅读(805)  评论(0编辑  收藏  举报