testNG注解与执行

项目地址:https://gitee.com/neimenggudaxue/BasicTest

一、testNG注解

1.@BeforeSuite
被@BeforeSuite注解的方法,将会在testng定义的xml根元素里面的所有执行之前运行。
2.@AfterSuite
被@AfterSuite注解的方法,将会在testng定义的xml根元素里面的所有执行之后运行。
3.@BeforeTest
被@BeforeTest注解的方法,将会在一个元素定义的所有里面所有测试方法执行之前运行。
4.@AfterTest
被@AfterTest注解的方法,将会在一个元素定义的所有里面所有的测试方法执行之后运行。
5.@BeforeClass
被@BeforeClass注解的方法,将会在当前测试类的第一个测试方法执行之前运行。
6.@AfterClass
被@AfterClass注解的方法,将会在当前测试类的最后一个测试方法执行之后运行。
7.@BeforeMethod
被@BeforeMethod注解的方法,将会在当前测试类的每一个测试方法执行之前运行。
8.@AfterMethod
被@AfterMethod注解的方法,将会在当前测试类的每一个测试方法执行之后运行。

二、testNG.xml文件的执行

pom.xml文件



    4.0.0

    qufang
    test
    1.0-SNAPSHOT
    
        
            org.testng
            testng
            6.11
            test
        

        
            com.alibaba
            fastjson
            1.2.30
        
        
            org.testng
            testng
            6.11
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    1.7
                    1.7
                    
                        -Xlint:unchecked
                        -Xlint:deprecation 
                    
                
            

            
                org.apache.maven.plugins
                maven-surefire-plugin
                2.5
                
                    true
                    
                        res/testNG.xml
                    
                
            
        
    

testNG.xml文件



    
        
            
        
    

TestNGAnnotationTest类

package testNG;

import org.testng.annotations.*;

/**
 * @Description: 接口:testng注解测试
 * @Author: qufang
 * @Date: Created in 下午5:44 2018/11/2
 */
public class TestNGAnnotationTest {
    @BeforeSuite
    public void beforeSuite(){
        System.out.println(this.getClass().getName()+"BeforeSuite");
    }

    @BeforeTest
    public void beforeTest(){
        System.out.println(this.getClass().getName()+"BeforeTest");
    }

    @BeforeClass
    public void beforeClass(){
        System.out.println(this.getClass().getName()+"BeforeClass");
    }

    @BeforeMethod
    public void beforeMethod(){
        System.out.println(this.getClass().getName()+"BeforeMethod");
    }

    @AfterMethod
    public void aftermethod(){
        System.out.println(this.getClass().getName()+"AfterMethod");
    }

    @AfterClass
    public void afterClass(){
        System.out.println(this.getClass().getName()+"AfterClass");
    }

    @AfterTest
    public void afterTest(){
        System.out.println(this.getClass().getName()+"AfterTest");
    }

    @AfterSuite
    public void afterSuit(){
        System.out.println(this.getClass().getName()+"AfterSuite");
    }

    @Test
    public void test1(){
        System.out.println(this.getClass().getName()+" test1");
    }

    @Test
    public void test2(){
        System.out.println(this.getClass().getName()+" test2");
    }
}

选中testNG.xml文件,点击run ,结果

testNG.TestNGAnnotationTestBeforeSuite
testNG.TestNGAnnotationTestBeforeTest
testNG.TestNGAnnotationTestBeforeClass
testNG.TestNGAnnotationTestBeforeMethod
testNG.TestNGAnnotationTest test1
testNG.TestNGAnnotationTestAfterMethod
testNG.TestNGAnnotationTestBeforeMethod
testNG.TestNGAnnotationTest test2
testNG.TestNGAnnotationTestAfterMethod
testNG.TestNGAnnotationTestAfterClass
testNG.TestNGAnnotationTestAfterTest
testNG.TestNGAnnotationTestAfterSuite

所以testNG.xml文件的执行实质就是依次执行冠以@Test注解的方法。而每执行一个@Test方法,都是依据<一>中的注解含义而形成的执行顺序

你可能感兴趣的:(testNG注解与执行)