Перейти к содержимому

Фотография

TestNG. Как запустить параллельные тесты в определенном порядке?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 sinister

sinister

    Новый участник

  • Members
  • Pip
  • 19 сообщений


Отправлено 11 февраля 2015 - 09:15

Добрый день! 
Проблема:
Тесты запускаются параллельно на 10 машинах. 

Есть набор тестов. 4 теста из этого набора имеют priority = 1, 2, 3, 4 соответственно. 
Как можно запустить эти 4 теста последовательно (или в 1 поток), чтоб следующий по приоритетности начинался только после того, как предыдущий закончился (или упал). т.е. dependsOn... не подходит.  
Так как по факту они запускаются в порядке приоритетности, но из-за параллельности результаты накладываются. 


  • 0

#2 sinister

sinister

    Новый участник

  • Members
  • Pip
  • 19 сообщений


Отправлено 11 февраля 2015 - 09:26

Стоит описать проблему, как сам в ней разбираешься) 

Все просто, помимо dependsOnMethods, достаточно поставить alwaysRun = true, что заставляет тесты запускаться даже в том случае, если тот тест, от которого они зависят, упал. 


  • 0

#3 Tishka

Tishka

    Постоянный участник

  • Members
  • PipPipPip
  • 211 сообщений
  • ФИО:Ахрамеев Антон

Отправлено 11 февраля 2015 - 09:49

Насколько я знаю в среде разработке с установленным плагином TestNG можно настроить порядок запуска, сам использую Eclipse

Выбираете Run As и выставляете нужный порядок.


  • 0

#4 sinister

sinister

    Новый участник

  • Members
  • Pip
  • 19 сообщений


Отправлено 11 февраля 2015 - 09:56

Не, тесты запускаются централизованно через Дженкинс. Как мне видится, выставлять порядок через Run As  - только для локального использования. Так-то можно и через xml выставить порядок, но при повторном запуске упавших тестов все сломается


  • 0

#5 tech

tech

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 14 февраля 2015 - 01:16

Я в Java делаю так:
 
package aaa.bbb.ccc;
 
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 
public class TestClass {
 
@Test
public void A_Test() {
    System.out.println("Pervij test");
}
 
 
@Test
public void B_Test() {
      System.out.println("Vtoroj test");
}
 
 
@Test
public void D_Test() {
     System.out.println("Chetvertij test");
}
 
 
@Test
public void C_Test() {
       System.out.println("Tretij test");
}
}

  • 0

#6 sinister

sinister

    Новый участник

  • Members
  • Pip
  • 19 сообщений


Отправлено 16 февраля 2015 - 10:26

Окэй, они запускаются в определенном порядке, но за счет чего в этом случае достигается условие "запускать новый тест после того, как предыдущий завершился" ?


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных