TestNG параллельный DataProvider - PullRequest
       17

TestNG параллельный DataProvider

1 голос
/ 13 октября 2019

Я бы хотел запускать методы тестирования в классе параллельно с поставщиком данных. Мне понадобится поставщик данных, который будет вызываться каждый раз, прежде чем новый метод тестирования начнет генерировать частично динамические данные для данного запуска теста. Позвольте мне объяснить это в псевдокоде:

@DataProvider(parallel=true)
public Object[][] dp(){
  User user = createNewUser();
  return new Object[][]{
            {"s1", new AExtendsOtherObject(user), user},
            {"s2", new BExtendsOtherObject("any"), user},
}

@Test(dataProvider = "dp")
void test(String s, OtherObject o, User user){
}

<suite name="all" verbose="1" parallel="methods" data-provider-thread-count="5">

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Хорошо, теперь, когда я понял, чего я действительно хочу, мой вопрос выглядит немного глупо. Простите за это. В любом случае, вот мое решение:

@DataProvider(parallel=true)
public Iterator<Object[]> dp(){
  List<Object[]> list = new ArrayList<>();
  User user = createNewUser();
  list.add(new Object[]{"s1", new AExtendsOtherObject(user), user});
  user = createNewUser();
  list.add(new Object[] {"s2", new BExtendsOtherObject("any"), user});        
  return list.iterator();
}

Единственная проблема с этим решением состоит в том, что если createNewUser () занимает много времени, то он сразу же запустит его, прежде чем любой метод тестирования может запуститься.

0 голосов
/ 14 октября 2019

Вы пробовали это? Из публичного документа:

https://howtodoinjava.com/testng/testng-executing-parallel-tests/#test_in_multiple_threads

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