Ho alcune istruzioni di init che devono essere fatte con il parametro del fornitore di dati e vorrei accedere al valore del parametro del fornitore di dati nel metodo di installazione @BeforeMethod
. È possibile?È possibile un parametro del fornitore di dati TestNG nel metodo setUp?
risposta
No, non c'è.
Il modo corretto è quello di utilizzare @Factory e per creare un'istanza della classe di test per ogni serie di dati, come descritto di seguito: https://groups.google.com/forum/#!topic/testng-users/3Kny3qTVdmg
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"));
}
Grazie mille @djangofan. Hai salvato la mia giornata !! –
Non sottovalutare la potenza di TestNG! – djangofan
sì, è possibile, come @ djangofan scrivi – SelenUser