Я новичок в этом, информация не содержится в документах TestNG, и я хотел бы просто понять несколько вещей, если кто-нибудь может мне помочь.Передача параметров поставщику testNG
@DataProvider(name="test1")
public Object[][] provideTestParam(ITestContext context){
String testParam = context.getCurrentXmlTest().getParameter(test_param);
return new Object[][]{{ testParam }};
}
@Test(dataProvider="test1")
public void testData(String data){
//...
}
Кто-нибудь знает, что это
test_param
? Это имя файла, метод какой-то параметр в файле testng.xml?Я посмотрел на javadoc для
ITestContext
, и я не совсем понимаю, как работаетgetParameter
. Получает ли он одну хэш-карту из xml-файла, из которого поступают данные? Или он получает все пары ключевых значений из xml-файла, из которого поступают данные?Все, что я хочу сделать, это иметь xml-файл, хранящийся в моем проекте, и использовать данные из xml-файла. Подайте его на датапровайдер и запустите мои тесты. Есть ли другой способ сделать это?
Может ли
getParameter
получить значения из testng.xml<test>
узел ИЛИ<class>
узел?
Нет, слово «ITestContext» не встречается ни разу в документации, ни фраза «тестовый контекст». – djangofan
Я нашел пять упоминаний только в http://testng.org/doc/documentation-main.html, и, конечно же, есть Javadoc и примеры. –
Для меня большая честь. Седрик. Вы правы, и я так рад, что прокомментировал, потому что теперь я обнаружил это: «Любые методы \ @Before и \ @After могут объявлять параметр типа XmlTest, который содержит текущий тег». , Невероятно! Кроме того, я просто не совсем понимаю это предложение в документах: «TestNG позволяет вам объявлять дополнительные параметры в ваших методах». Пример, который они предоставляют, очень расплывчато. Я думаю, что мой метод тестирования может выглядеть так: void testIt (XmlTest thisTest). Правильно ли это звучит? –
djangofan