我有一个包含3个方法的java类:
public class Test{
public void orange(){
}
public void apple(){
}
public void mango(){
}
}
我想按顺序/顺序执行上面提到的3种方法,就像我用Selenium RC和TestNG编写的那样。我怎么能这样做?
答案 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(){}