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 }
執行結果:eclipse
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")