2013-08-07 3 views

risposta

10

Sì, è del tutto possibile. Nel metodo annotato @BeforeMethod, è possibile passare un argomento incorporato facoltativo di Object [] che è fondamentalmente una copia dei parametri passati al metodo @Test. Nel mio caso, mi passa 2 args al mio metodo di prova:

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

Quindi, qualcosa di simile a questo (e non ha bisogno di essere una fabbrica FornitoreDati):

@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

Grazie mille @djangofan. Hai salvato la mia giornata !! –

+0

Non sottovalutare la potenza di TestNG! – djangofan