Mam kilka instrukcji init, które należy wprowadzić za pomocą parametru dostawcy danych i chciałbym uzyskać dostęp do wartości parametru dostawcy danych w metodzie instalacji @BeforeMethod
. czy to możliwe?Czy jest możliwy parametr dostawcy danych TestNG w metodzie setUp?
Odpowiedz
Nie, nie ma.
Właściwym sposobem jest użycie @Factory i utworzyć instancję klasy testowej dla każdego zestawu danych, jak opisano tutaj: https://groups.google.com/forum/#!topic/testng-users/3Kny3qTVdmg
Tak, jego całkowicie możliwe. W metodzie adnotowanej @BeforeMethod
można przekazać opcjonalny wbudowany argument Object [], który jest w zasadzie kopią parametrów przekazywanych do metody @Test
. W moim przypadku, mijam 2 args do mojego metody badawczej:
@Test(dataProvider="provider")
public void doTest(TestHelper testHelper, Map<String,String> paramMap) {
....
Tak, coś w tym (i to nie musi być fabrycznie 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"));
}
Wielkie dzięki @djangofan. Uratowałeś mój dzień! –
Nie lekceważ potęgi TestNG! – djangofan
tak można jak @ djangofan napisz – SelenUser