2016-09-16 86 views

回答

1

先测试后再上课。

@BeforeTest:将在运行属于<test>标记内的类的任何测试方法之前运行带注释的方法。

@BeforeClass:注释的方法将在当前类中的第一个测试方法被调用之前运行。
http://testng.org/doc/documentation-main.html#annotations

+0

好的,那么课后和测试后呢?首先执行测试后? –

+0

是的。检查这个片段,你可以得到这个想法,http://pastebin.com/sp8kceK3第1至第45行抽象类,45-76,2个类,每个测试2个,以及76至94个testng.xml。最后一个是控制台输出。我读错了,检查更新的答案和片段。 –

1

注释执行顺序

  1. BeforeSuite
  2. BeforeTest
  3. BeforeClass
  4. BeforeMethod
  5. 测试
  6. AfterGroups
  7. 课余
  8. 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和描述

  1. @BeforeSuite:被注释的方法将在 所有测试此套件运行之前运行。
  2. @BeforeTest:将在运行属于 标记内的类的任何测试方法之前运行带注释的方法。
  3. @BeforeGroups:此 配置方法将运行之前的组列表。此方法保证在 即将运行 之前,属于这些组的第一个测试方法是调用 。
  4. @BeforeClass:注释的方法将在当前类的第一个测试方法被调用之前运行。
  5. @BeforeMethod:注释的方法将在每个测试方法之前运行。
  6. @Test:测试方法或类
  7. @AfterMethod:被注释的方法将每个测试方法之后运行。
  8. @AfterClass:在当前类中的所有测试方法都运行之后,将会运行带注释的方法。
  9. @AfterGroups:此配置方法将运行之后的组列表。这种方法保证在最后一次测试方法后不久即可运行 ,这些方法属于这些组中的任何一个,调用时为 。
  10. @AfterTest:在所有属于标签内部类的测试方法都运行 后,将运行带注释的方法。
  11. @AfterSuite:在此套件中的所有测试都运行之后,将会运行带注释的方法。

有由TestNG提供各种其他注释和不同类型 /参数可被传递给这些注解的属性。对于 更多关于TestNG注释follow this link