我一直在使用TestNG,并且有两个注释问题,@BeforeTest
和@BeforeClass
。我想知道两者是否都会先应用?TestNG:@BeforeClass和@BeforeTest的优先级
1
A
回答
1
先测试后再上课。
@BeforeTest
:将在运行属于<test>
标记内的类的任何测试方法之前运行带注释的方法。
@BeforeClass
:注释的方法将在当前类中的第一个测试方法被调用之前运行。
http://testng.org/doc/documentation-main.html#annotations
1
注释执行顺序:
- BeforeSuite
- BeforeTest
- BeforeClass
- BeforeMethod
- 测试
- AfterGroups 个
- 课余
- AfterTest
您可以用伪代码检查:
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");
}
}
3
答:方法与@BeforeTest
注释之前会比@BeforeClass
注释的方法调用。
TestNG
注释执行顺序参照@Test
和描述:
- @BeforeSuite:被注释的方法将在 所有测试此套件运行之前运行。
- @BeforeTest:将在运行属于 标记内的类的任何测试方法之前运行带注释的方法。
- @BeforeGroups:此 配置方法将运行之前的组列表。此方法保证在 即将运行 之前,属于这些组的第一个测试方法是调用 。
- @BeforeClass:注释的方法将在当前类的第一个测试方法被调用之前运行。
- @BeforeMethod:注释的方法将在每个测试方法之前运行。
- @Test:测试方法或类
- @AfterMethod:被注释的方法将每个测试方法之后运行。
- @AfterClass:在当前类中的所有测试方法都运行之后,将会运行带注释的方法。
- @AfterGroups:此配置方法将运行之后的组列表。这种方法保证在最后一次测试方法后不久即可运行 ,这些方法属于这些组中的任何一个,调用时为 。
- @AfterTest:在所有属于标签内部类的测试方法都运行 后,将运行带注释的方法。
- @AfterSuite:在此套件中的所有测试都运行之后,将会运行带注释的方法。
有由
TestNG
提供各种其他注释和不同类型 /参数可被传递给这些注解的属性。对于 更多关于TestNG
注释follow this link
相关问题
- 1. TestNg使用dependsOnMethods和优先级违反优先
- 2. FAILED CONFIGURATION:@BeforeTest beforeTest。 MAVEN; TestNG,硒
- 3. TestNG的@Factory优先
- 4. 优先级队列中的优先级
- 5. Upstart和init.d的优先级
- 6. 失败配置:@BeforeTest beforeTest上运行该代码TestNG的
- 7. 优先上传优先级,以高优先级使用HTB qdiscs
- 8. Repast Symphony调度方法优先级和代理优先级
- 9. Apache和RewriteRule优先级
- 10. ActiveMQ的优先级
- 11. TestNG方法执行默认优先级序列
- 12. 流程优先与线程优先级
- 13. 在JUnit中相当于TestNG @BeforeTest
- 14. 为优先级较高的元素和其他优先级较低的元素排序优先队列
- 15. C++函数中非常奇怪的优先级/优先级
- 16. 如何确定terraform执行优先级的优先级
- 17. 新近度是次要优先级的优先级队列?
- 18. 具有动态项目优先级的优先级队列
- 19. 优先级队列的优先级总是需要是整数?
- 20. 优先级:图像
- 21. CSS类优先级
- 22. 线程优先级
- 23. 基于优先级
- 24. 优先级队列
- 25. 优先级反转
- 26. 优先级反转
- 27. JQuery和Facebook API函数优先级/优先
- 28. CSS和jQuery的优先级问题
- 29. -D MACRO和#define MACRO的优先级
- 30. CouchDB和PouchDB同步中的优先级
好的,那么课后和测试后呢?首先执行测试后? –
是的。检查这个片段,你可以得到这个想法,http://pastebin.com/sp8kceK3第1至第45行抽象类,45-76,2个类,每个测试2个,以及76至94个testng.xml。最后一个是控制台输出。我读错了,检查更新的答案和片段。 –