我一直在使用TestNG并遇到两个注释@BeforeTest
和@BeforeClass
的问题。我想知道两者是否都会先应用?
答案 0 :(得分:5)
回答:在使用@BeforeTest
注释的方法之前,将调用使用@BeforeClass
注释的方法。
TestNG
和说明的 @Test
注释执行顺序:
的更多信息
TestNG
提供了各种其他注释,但不同 属性/参数的类型可以传递给这些注释。对于 有关TestNG
注释follow this link
答案 1 :(得分:1)
先测试然后再上课。
@BeforeTest
:在运行属于<test>
标记内的类的任何测试方法之前,将运行带注释的方法。
@BeforeClass
:在调用当前类中的第一个测试方法之前,将运行带注释的方法。
http://testng.org/doc/documentation-main.html#annotations
答案 2 :(得分:1)
注释执行顺序:
您可以使用伪代码检查:
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");
}
}