0

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

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

我想按 Selenium RC 和 TestNG 编写的顺序/有序地执行上述 3 种方法。我怎样才能做到这一点?

4

5 回答 5

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

于 2011-03-23T15:52:32.367 回答
3

只需更改@Testto@Test(singleThreaded=true)即可。

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

于 2011-03-23T07:48:53.870 回答
0

在您的测试类中,您可以在类级别本身尝试此注释。

@Test(sequential = true)
于 2011-03-23T07:47:51.610 回答
0

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

于 2011-03-24T07:05:05.903 回答
0

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

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

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

@Test(priority=3)
public void mango(){}
于 2013-05-23T15:23:44.437 回答