2012-06-04 5 views
1

Я новичок в этом, информация не содержится в документах 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){ 

    //... 
} 
  1. Кто-нибудь знает, что это test_param? Это имя файла, метод какой-то параметр в файле testng.xml?

  2. Я посмотрел на javadoc для ITestContext, и я не совсем понимаю, как работает getParameter. Получает ли он одну хэш-карту из xml-файла, из которого поступают данные? Или он получает все пары ключевых значений из xml-файла, из которого поступают данные?

  3. Все, что я хочу сделать, это иметь xml-файл, хранящийся в моем проекте, и использовать данные из xml-файла. Подайте его на датапровайдер и запустите мои тесты. Есть ли другой способ сделать это?

  4. Может ли getParameter получить значения из testng.xml <test> узел ИЛИ <class> узел?

ответ

1
  1. Никакая идея, test_param не появляется в фрагменте кода.
  2. Параметры, выставленные в ITestContext, указаны в testng.xml.
  3. Конечно, вам нужно проанализировать собственный XML-файл, а затем вернуть то, что вы нашли, как Object[][].

Все это подробно объясняется в различных разделах the documentation, не стесняйтесь спрашивать, если у вас есть дополнительные вопросы.

+0

Нет, слово «ITestContext» не встречается ни разу в документации, ни фраза «тестовый контекст». – djangofan

+1

Я нашел пять упоминаний только в http://testng.org/doc/documentation-main.html, и, конечно же, есть Javadoc и примеры. –

+0

Для меня большая честь. Седрик. Вы правы, и я так рад, что прокомментировал, потому что теперь я обнаружил это: «Любые методы \ @Before и \ @After могут объявлять параметр типа XmlTest, который содержит текущий тег ». , Невероятно! Кроме того, я просто не совсем понимаю это предложение в документах: «TestNG позволяет вам объявлять дополнительные параметры в ваших методах». Пример, который они предоставляют, очень расплывчато. Я думаю, что мой метод тестирования может выглядеть так: void testIt (XmlTest thisTest). Правильно ли это звучит? – djangofan