2013-08-07 72 views

回答

10

是,它完全可能的。在@BeforeMethod帶註釋的方法中,您可以傳遞Object []的可選內置參數,該參數基本上是傳遞給@Test方法的參數的副本。就我而言,我通過2個參數傳遞給我的測試方法:

@Test(dataProvider="provider") 
public void doTest(TestHelper testHelper, Map<String,String> paramMap) { 
    .... 

所以,這樣的事情(和它並不需要是一個工廠的DataProvider):

@BeforeMethod 
public void setUp(Object[] testArgs) { 
    Map<String,String> paramMap = (Map<String, String>)testArgs[1]; 
    TestHelper testHelper = testArgs[0]; 
    String testName = paramMap.get("testCaseName"); 
    log.logTcStep("Test case name: " + testName); 
    log.setLogTcName(testName); 
    testHelper.setTestName(testName); 
    testHelper.setTagsByString(paramMap.get("browser")); 
    testHelper.setBuildNumber(paramMap.get("environment")); 
} 
+0

非常感謝@djangofan。你救了我的一天! –

+0

不要低估TestNG的力量! – djangofan

相關問題