如何使用Java通过Selenium RC和TestNG顺序运行/执行方法

时间:2011-03-23 07:43:18

标签: java selenium testng selenium-rc sequential

我有一个包含3个方法的java类:

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

我想按顺序/顺序执行上面提到的3种方法,就像我用Selenium RC和TestNG编写的那样。我怎么能这样做?

5 个答案:

答案 0 :(得分:5)

简单的方法是将@Test更改为@Test(singleThreaded=true)。如果这样做,您的类中的所有测试将在单个线程中按顺序运行。

如果您想明确测试应该运行的顺序,可以使用注释@dependsOnMethods

public void orange(){}

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

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

如果您希望类中的某些方法(而非全部)按顺序运行,这也很好。

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

答案 1 :(得分:3)

只需将@Test更改为@Test(singleThreaded=true),即可开始使用。

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

答案 2 :(得分:0)

在测试类中,您可以在类级别自己尝试此注释。

@Test(sequential = true)

答案 3 :(得分:0)

我建议使用dependsOnGroups。因此,您将测试方法作为一个组进行分组,并提供对该组的依赖性。所以明天,如果你重构你的方法名,你的依赖结构就不会被破坏。有关dependsOnGroups的更多信息,请查看here

答案 4 :(得分:0)

除了在课堂上使用sequential=true之外,您还可以为方法本身设置优先级。

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

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

@Test(priority=3)
public void mango(){}