2013-08-27 4 views
0

У меня есть несколько групп, я хотел бы иметь возможность запускать все или подмножество параллельно, например. -Dgroups = a, b, ... У меня есть метод, аннотированный аннотацией @BeforeGroups, который должен выполнять какое-либо поведение до запуска группы. Поведение, которое я вижу, это когда я запускаю две конкретные группы, один с тремя тестами, другой с двумя, первые два теста первой группы запускаются, а затем два теста второй группы, а затем последний метод первой группы. (в алфавитном порядке на основе имен классов, где определены тесты). Методы распространяются по разным классам. Пожалуйста помоги!TestNG + Groups + BeforeGroups Методы работы в алфавитном порядке

testng.xml

<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" > 
<suite name="API Tests"> 
    <test name="all"> 
     <groups> 
      <run> 
       <include name="a" /> 
       <include name="b" /> 
       <include name="c" /> 
       <include name="d" /> 
       <include name="e" /> 
      </run> 
     </groups> 
     <packages> 
      <package name="package.*" /> 
     </packages> 
    </test> 
</suite> 

выполнение заказа (с сокращениями для запутывания)

Class: E; Method: testF; Group: a 
Class: I; Method: testI; Group: a 
Class: S; Method: testSH; Group: b 
Class: S; Method: testSI; Group: b 
Class: T; Method: testF; Group: a 

Примечание: Я попытался установить темы 1, это не устранило порядок испытаний/групп выполнение.

ответ

1

Вам нужно будет указать количество потоков. Если у вас есть 2 группы & необходимости запускать их в 2-х параллельных потоках, то XML будет -

<suite name="FooSuite" parallel="tests" thread-count="2"> 
<test name="Group1"> 
    <groups> 
     <run> 
      <include name="1" /> 
     </run> 
    </groups> 
    <packages> 
     <package name="package.*" /> 
    </packages> 
</test> 
<test name="Group2"> 
    <groups> 
     <run> 
      <include name="2" /> 
     </run> 
    </groups> 
    <packages> 
     <package name="package.*" /> 
    </packages> 
</test> 

Запуск параллельно допускается для испытаний, классы & методов. Вы могли бы проектировать свой XML в соответствии с вашими требованиями.

+0

Это не работает. Поведение, упомянутое выше, с выполнением теста по-прежнему происходит. Я пробовал один поток с одним тестом, в котором было две группы с таким же неправильным поведением. – kfox

+0

Это ожидаемое поведение. Если вы попробовали один тест с двумя группами в нем, он будет запускать их поочередно один за другим, так как параллельный флаг устанавливается на тесты. Пожалуйста, попробуйте тот, который указан в моем ответе, а затем понизите мой ответ. – praneel

+0

Я попытался с теми же результатами, может быть, я не понял вашего ответа. Я хочу запустить две группы, поэтому я включил Group1And2 и установил parallel = "tests" thread-count = "1". – kfox

Смежные вопросы