testng - передача списка в качестве параметров в testng.xml - PullRequest
6 голосов
/ 15 марта 2011

Можно ли передать список в параметрах testNG. Ниже приведен пример кода

Пример: Попытка передать список чисел в XML. Не уверен, что TestNG не поддерживает эту функцию. Или я что-то упустил?

 <suite name="Suite" parallel="none">  
     <test name="Test" preserve-order="false">  
         <parameter name="A" value="1"/>   
         <parameter name="B" value="2"/>   
         <parameter name="C" value="3"/>   
         <parameter name="D" value="{4,5}"/>   
         <classes>  
             <class name="TestNGXMLData"/>  
         </classes>  
     </test>  
 </suite>  

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.thoughtworks.selenium.Selenium;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.*;
import com.thoughtworks.selenium.*;

public class TestNGXMLData {

    @Test
    @Parameters(value = { "A", "B", "C", "D" })
    public void xmlDataTest(String A, String B, String C, ArrayList<String> ls) {

        System.out.println("Passing Three parameter to Test " + A + " and " + B + " and " + C);

        Iterator it = ls.iterator();
        while (it.hasNext()) {
            String value = (String) it.next();
        }
    }
}

Спасибо, Сива

Ответы [ 2 ]

9 голосов
/ 15 марта 2011

Вы можете передавать только базовые типы, подобные этому, поэтому вы должны объявить свой последний параметр как «String», а затем преобразовать «{3, 4}» в список. Вместо этого я предлагаю использовать «3 4» и просто разобрать его с помощью String # split.

Если вы хотите передать более сложные параметры и не хотите заниматься преобразованием, переключитесь на использование @ DataProvider.

0 голосов
/ 15 марта 2011

Из руководства , @Parameter может использоваться для простых параметров. Для сложных объектов, вы должны смотреть на @Dataprovider

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...