2014-10-07 5 views
0

Мне нужно передать целочисленный массив в файл testng.xml, потому что я использую его в качестве файла конфигурации для запуска нескольких тестов по методу, который я написал, чтобы сделать его управляемым данными ,Как передать целочисленный массив testng.xml

этот метод:

@Test(groups="runnable") 
@Parameters({"fName","lName","childAges"}) 
public void test(String firstName, String lastName, Integer[] childAges); 

И в моем файле testng.xml:

<test name="WyomingComplex4Kids (Positive)"> 
    <parameter name="fName" value="John"/> 
    <parameter name="lName" value="Johnson"/> 
    <parameter name="childAges" value="{10,7,3,6}"/> 
    <parameter name="server" value="https://example.server.com/app/someRoute"/> 
    <parameter name="port" value="443"/> 
    <groups> 
     <run> 
      <include name="runnable"/> 
     </run> 
    </groups> 
    <classes> 
      <class name = "com.somecompany.test.EligibilityComplex1"/> 
    </classes> 
</test> 

занимает в целочисленном массиве, который содержит ребенка возраст, это не похоже на работу. Я новичок в тестировании и тестировании в целом. Может ли кто-нибудь помочь мне здесь? Я слышал об использовании сложных объектов dataprovider tp pass (т. Е. Как массив или список), но я не могу понять, как это работает или как я могу использовать его в своем тесте. Так что любая помощь будет очень признательна, спасибо.

ответ

1

В testng нет шаблона, который {"sdf", "sdf"} преобразуется в массив. Вы получите ошибку параметра Unsupported type. Обратитесь к коду (метод convertType) here. Преобразуются только базовые типы данных.

Если вы хотите преобразовать его в массив, вам нужно разделить и преобразовать массив.

Dataprovider просто поможет вам запустить те же тесты с разными данными. В этом случае, если вы говорите, прочитав от excel все свои данные, вам все равно нужно создать массив через код.

+0

Можете ли вы привести мне пример? Как и в коде – mosawi

+0

Вам просто нужно прочитать как строку, использовать метод split, а затем разобрать на Int каждое значение. Измените Integer [] на String в вашем методе тестирования - удалите {} из вашего значения параметра в xml. Используйте childAges.split (","), который даст в качестве массива, а затем цикл и parseInt. –

Смежные вопросы