Я использую TestNG для своих тестов на селен. Существует тест под названием «Создать фирму», который нужно запускать несколько раз на моем ноутбуке.
Поэтому я написал для этого класс под названием «CreateFirm», и данные для различных фирм находятся в электронной таблице Excel.
В разное время мне нужно создавать различные наборы фирм, которые я контролирую с помощью столбца в электронной таблице Excel, в котором хранится имя моего компьютера.
Я использую @Factory для создания своих классов CreateFirm, у которых есть один метод @Test для создания фирмы.
В электронной таблице Excel. Если я назначил фирму 1, фирму 2, фирму 3, фирму 4 в том же порядке для моего ноутбука, @Factory создает их в случайном порядке, например, фирма 4, фирма 3, фирма 1, фирма 2.
Мой вопрос: как заставить @Factory создавать тестовые экземпляры в том порядке, в котором я хочу?
Мой метод @Factory:
@Factory
public Object[] runCreateFirm()
{
//This is where I get the list of test cases assigned to my laptop
this.test_id_list=get_test_ids_for_test_run("Create Firm (class approach).xls", "Global");
Object[] result = new Object[this.test_id_list.size()];
int index=0 ;
for (String firm_id: this.test_id_list)
{
//This is where I get all the test data from the Excel spreadsheet
HashMap<String,String> test_data_row=this.get_row_from_excel("Create Firm (class approach).xls", "Global", "test_case_id", firm_id);
System.out.println("Inside Firm Factory ,index="+index +", test case id="+ test_data_row.get("test_case_id"));
//CreateFirm is the class which will use the data and do all the UI actions to create a Firm
result[index]=new CreateFirm(test_data_row);
index++;
}
return result;
}
XML это
<?xml version="1.0" encoding="UTF-8"?>
<suite name="CreateFirm Suite">
<test name="Create Firm Test" order-by-instances="false">
<classes>
<class name="regressionTests.factory.CreateFirmFactory"/>
</classes>
</test>
</suite>