Testng — зацикливание поставщика данных или класса в Java?

Я ищу немного помощи с моей компоновкой плана, если это возможно

В настоящее время у меня есть следующее, которое хорошо работает:

@dataprovider подключается к базе данных mysql, а затем сохраняет 300 результатов в массиве @test циклы для всех 300 записей и все тесты пройдены

Что мне нужно, и я борюсь с этим:

После завершения @test мне нужно каким-то образом вернуться к поставщику данных (с переменной), а затем снова запустить тесты.

Если вы представляете структуру каталогов, я запрашиваю базу данных для всех категорий, начинающихся с A, проверяю результаты, затем повторно запрашиваю базу данных для категорий, начинающихся с B, и повторно проверяю результат.

Не уверен, как это сделать, до сих пор я пытался добавить цикл в свой @dataprovider, чтобы массив имел, например, 300 категорий A, 300 категорий B и т. д. Но это доставляло мне всевозможные проблемы с множество.

Любые идеи, как я могу добиться этого, или мне нужен отдельный класс для каждого запроса данных? Майк


person Michael B    schedule 14.07.2011    source источник


Ответы (1)


Провайдер данных может возвращать массив Object[][]. Вы пробовали что-то вроде этого:

@DataProvider(name="categoryloader")
public Object[][] createData(){
    return new Object[][]{
            {"CatgoryA",new String[300]},
            {"CatgoryB",new String[300]},
    };
}
person A.J    schedule 15.07.2011