непараллельное выполнение пакетов testng чередует методы из разных классов - PullRequest
0 голосов
/ 03 августа 2020

У меня есть набор TestNG, определяющий такой тест:

<test parallel="none">
  <packages>
    <package name="com.acme.tests.sanity" />
    <package name="com.acme.tests.other" />
  </packages>
</test>

Классы содержат методы, которые зависят друг от друга следующим образом:

@Test
public void someInitialization() {...}

@Test(dependsOnMethods="someInitialization")
public void someVerification() {...}

@Test(dependsOnMethods="someVerification")
public void andAnotherVerification() {...}

Во время инициализации мы запускаем мобильное приложение , войдите в систему и выполните настройку на уровне приложения, все это займет ~ 2 минуты, поэтому я предпочитаю инициализировать один раз для каждого класса и запускать несколько зависимых тестов.

Проблема в том, что наш поставщик мобильных эмуляторов не любит зомб ie устройств из-за ленивых или зависших тестов. И время от времени мы получаем ошибку «сессия уже закрыта».

После анализа журналов я обнаружил, что выполнение методов одного класса чередуется с выполнением методов из другого класса, и поскольку все выполняется В основном потоке сеанс эмулятора из предыдущего метода истекает из-за этого чередования.

Чтобы сделать вещи более ясными, журнал для двух классов A и B, каждый из которых имеет несколько взаимозависимых методов, выглядит следующим образом:

03:29:21.035 [DEBUG] [A:m1]: m1 finished leaving on open WebDriver and for further methods
03:29:21.330 [INFO ] [B:m2]: here is other method from other class !!!!!! which runs for several minutes
03:37:11.334 [INFO ] [A:m2]: m2 depends on m1, but TestNG does not "think" it should run right away -- hence it gets a dead WebDriver

Я пытался добавить group-by-instances="true" в тест, но все еще вижу чередование классов.

Есть предложения?

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