我有一个包含 3 个方法的 java 类:
public class Test{
public void orange(){
}
public void apple(){
}
public void mango(){
}
}
我想按 Selenium RC 和 TestNG 编写的顺序/有序地执行上述 3 种方法。我怎样才能做到这一点?
我有一个包含 3 个方法的 java 类:
public class Test{
public void orange(){
}
public void apple(){
}
public void mango(){
}
}
我想按 Selenium RC 和 TestNG 编写的顺序/有序地执行上述 3 种方法。我怎样才能做到这一点?
简单的方法是更改@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
只需更改@Test
to@Test(singleThreaded=true)
即可。
http://testng.org/javadoc/org/testng/annotations/Test.html#singleThreaded%28%29
在您的测试类中,您可以在类级别本身尝试此注释。
@Test(sequential = true)
我建议使用dependOnGroups。因此,您将您的测试方法作为一组并提供对该组的依赖。所以明天如果你重构你的方法名,你的依赖结构就不会被破坏。有关dependsOnGroups的更多信息,请看这里
除了sequential=true
在类上使用之外,您还可以在方法本身上设置优先级。
@Test(priority=1)
public void orange(){}
@Test(priority=2)
public void apple(){}
@Test(priority=3)
public void mango(){}