Как распечатать параметры, а не значения с помощью списков. Кроме того, что не так, когда моя строка возвращает ноль в качестве префикса для каждого выхода? - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу напечатать параметры, переданные этому методу, используя Listners.

@Test
@Parameters({"browsername","URL", "ebrowse","eURL"})
public static void LaunchApplication(String browsername, String URL, String ebrowse, String eURL ) throws InterruptedException, IOException{

Я использовал следующий код:

public void onTestSuccess(ITestResult result) {
System.out.println("\nThe method is in " +result.getTestClass().getName());
        String paramet = null;
        for(Object parameter : result.getParameters()){ 
        paramet += parameter.toString() +",";
        }
        System.out.println("The parameters of the method are: " +paramet);
}

Выход:

The parameters of the method are: nullch32,http://localhost:90/fintech/login.html,ch32,http://localhost:90/fintech/login.html,

Вывод, который я получаю, это значения, которые передаются параметру. Также он печатает ноль, который я использовал для инициализации строки. Как устранить нуль и вывести только параметры, а не значения?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Вы пытаетесь получить только значения параметров, которые генерирует аннотация @Parameters. Что вам действительно нужно, так это получить доступ к самой аннотации с помощью отражения и извлечь переданные ей свойства конфигурации.

Чтобы получить имена параметров, у вас должно быть что-то похожее на следующий код:

String[] parameters = testResult.getMethod().getMethod().getAnnotation(Parameters.class).value();
System.out.println("Parameter 1: " + parameters[0]); //will print browsername
System.out.println("Parameter 2: " + parameters[1]); //will print URL
System.out.println("Parameter 3: " + parameters[2]); //will print ebrowse
System.out.println("Parameter 4: " + parameters[3]); //will print eURL
0 голосов
/ 05 сентября 2018

Чтобы избавиться от null, просто инициализируйте строку с "" (пустая строка).

String paramet = "";

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

...