Selenium TestNG:@BeforeClass和@BeforeTest的优先级
我一直在使用TestNG,但在两个注释方面存在问题,Selenium TestNG:@BeforeClass和@BeforeTest的优先级,selenium,testng,Selenium,Testng,我一直在使用TestNG,但在两个注释方面存在问题,@BeforeTest和@BeforeClass。我想知道这两种方法是否都适用,哪一种先运行?先测试,然后上课 @BeforeTest:在运行属于标记内类的任何测试方法之前,将运行带注释的方法 @BeforeClass:带注释的方法将在调用当前类中的第一个测试方法之前运行。 注释执行顺序: 套房前 试验前 课前 预处理法 试验 后组 下课 事后 您可以使用伪代码进行检查: public class TestAnnotationsPriority
@BeforeTest
和@BeforeClass
。我想知道这两种方法是否都适用,哪一种先运行?先测试,然后上课
@BeforeTest
:在运行属于
标记内类的任何测试方法之前,将运行带注释的方法
@BeforeClass
:带注释的方法将在调用当前类中的第一个测试方法之前运行。注释执行顺序:
public class TestAnnotationsPriorityOrder {
public int i=0;
@BeforeSuite
public void beforeSuite(){
i++;
System.out.println(i+"::BeforeSuite");
}
@AfterSuite
public void afterSuite(){
i++;
System.out.println(i+"::AfterSuite");
}
@BeforeTest
public void beforeTest(){
i++;
System.out.println(i+"::BeforeTest");
}
@AfterTest
public void afterTest(){
i++;
System.out.println(i+"::AfterTest");
}
@BeforeGroups
public void beforeGroups(){
i++;
System.out.println(i+"::BeforeGroups");
}
@AfterGroups
public void afterGroups(){
i++;
System.out.println(i+"::AfterGroups");
}
@BeforeClass
public void beforeClass(){
i++;
System.out.println(i+"::BeforeClass");
}
@AfterClass
public void afterClass(){
i++;
System.out.println(i+"::AfterClass");
}
@BeforeMethod
public void beforeMethod(){
i++;
System.out.println(i+"::BeforeMethod");
}
@AfterMethod
public void afterMethod(){
i++;
System.out.println(i+"::AfterGroups");
}
@Test
public void TestMethod(){
i++;
System.out.println(i+"::Test");
}
}
Answer:使用
@BeforeTest
注释的方法将在使用@BeforeClass
注释的方法之前被调用
TestNG
注释参考@Test
和说明的执行顺序:
TestNG
还提供了各种其他注释和不同的注释
属性/参数的类型可以传递给这些注释。对于
有关TestNG
注释的更多信息
好的,那么课后和考试后呢?先执行测试之后?是的。检查这些代码片段,您就可以了解其中的含义:第1行到第45行抽象类,第45-76行,两个类,每个类有2个test,以及从第76行到第94行的testng.xml。最后是控制台输出。我读错了,检查更新的答案和片段。@Adam Grunt如果你觉得这个答案澄清了你的疑问,那么你可以接受它,这样它也可以帮助其他人轻松找到最佳答案。