Возможный передать параметры TestNG DataProvider?

Apache палата общин позволяет:

String myString = IOUtils.toString(myInputStream, "UTF-8");

, Конечно, Вы могли выбрать другие кодировки символов помимо UTF-8.

Также см.: ( документация )

20
задан Benjamin Lee 20 March 2009 в 14:53
поделиться

2 ответа

Взято из документации TestNG :

Если вы объявляете, что ваш @DataProvider принимает java.lang.reflect.Method в качестве первого параметра , TestNG передаст текущий метод тестирования для этого первого параметра. Это особенно полезно, когда несколько методов тестирования используют один и тот же @DataProvider, и вы хотите, чтобы он возвращал разные значения в зависимости от того, для какого метода тестирования он предоставляет данные.

Например, следующий код печатает имя метода тестирования внутри своего @DataProvider:

@DataProvider(name = "dp")
public Object[][] createData(Method m) {
  System.out.println(m.getName());  // print test method name
  return new Object[][] { new Object[] { "Cedric" }};
}

@Test(dataProvider = "dp")
  public void test1(String s) {
}

@Test(dataProvider = "dp")
  public void test2(String s) {
}

и поэтому будет отображать:

test1
test2

Это также может быть объединено с решением, предоставленным desolat, для определения данных из контекста и метода соответственно:

    @DataProvider(name = "dp")
    public Object[][] foodp(ITestContext ctx, Method method) {
        // ...
    }
16
ответ дан 30 November 2019 в 00:05
поделиться

Ответ от yshua немного ограничивает, потому что вам все равно нужно жестко закодировать пути к файлам внутри ваш поставщик данных. Это означает, что вам придется изменить исходный код, а затем перекомпилировать, чтобы просто повторно запустить тест. Это лишает смысла использование файлов XML для настройки тестового прогона.

Лучшим, определенно более хитрым, путаницей решения было бы создание фиктивного метода @test, который запускается до набора, принимает ваши пути к файлам в качестве параметров и сохраняет эту информацию в классе, содержащем эти методы тестирования.

Это решение не идеально, но до тех пор, пока TestNG не разрешит лучшую передачу параметров (возможно, это изменилось), это может быть жизнеспособным для ваших нужд.

1
ответ дан 30 November 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: