Как запустить / выполнить методы последовательно с помощью Selenium RC и TestNG с использованием Java - PullRequest
0 голосов
/ 23 марта 2011

У меня есть класс Java, содержащий 3 метода:

public class Test{
 public void orange(){
 }
 public void apple(){
 }
 public void mango(){
 }
}

Я хочу выполнить 3 упомянутых выше метода последовательно / последовательно, как я написал Selenium RC и TestNG. Как я могу это сделать?

Ответы [ 5 ]

5 голосов
/ 23 марта 2011

Простой способ - просто изменить @Test на @Test(singleThreaded=true). Если вы это сделаете, все тесты в вашем классе будут выполняться последовательно в одном потоке.

или

Если вы хотите четко указать порядок, в котором должны выполняться тесты, вы можете использовать аннотацию @ зависящий от методу

public void orange(){}

@Test(dependsOnMethods = { "orange" })
public void apple(){}

@Test(dependsOnMethods = { "apple" })
public void mango(){}

Это также хорошо, если вы хотите, чтобы некоторые, но не все, методы в классе выполнялись последовательно.

http://testng.org/doc/documentation-main.html#dependent-methods

3 голосов
/ 23 марта 2011

Просто измените @Test на @Test(singleThreaded=true) и все готово.

http://testng.org/javadoc/org/testng/annotations/Test.html#singleThreaded%28%29

0 голосов
/ 23 мая 2013

Помимо использования sequential=true в классе, вы также можете установить приоритет для самих методов.

@Test(priority=1)
public void orange(){}

@Test(priority=2)
public void apple(){}

@Test(priority=3)
public void mango(){}
0 голосов
/ 24 марта 2011

Я предлагаю использовать зависящие от группы. Следовательно, вы объединили свой метод тестирования в одну группу и обеспечили зависимость от этой группы. Так что завтра, если вы реорганизуете имя вашего метода, ваша структура зависимостей не будет нарушена. Подробнее о зависимости от групп смотрите здесь

0 голосов
/ 23 марта 2011

В вашем тестовом классе вы попробуйте эту аннотацию на уровне самого класса.

@Test(sequential = true)
...