TestNG注解练习

TestNG注解练习:

1)TestDBConnection.java   

package com.hf.testng;

import org.testng.annotations.Test;

public class TestDBConnection {

    @Test
    public void runOtherTest1(){
        System.out.println("@Test-- runOtherTest1");
    }

    @Test(groups = {"group2"})
    public void runOtherTest2(){
        System.out.println("@Test-- runOtherTest2, group2");
    }

    @Test
    public void runOtherTest3(){
        System.out.println("@Test-- runOtherTest3");
    }

}

2)DBConfig.java

package com.hf.testng;

import org.testng.annotations.*;

public class DBConfig {

    @BeforeSuite
    public void beforeSuit(){
        System.out.println("@BeforeSuit,在该套件的所有测试都运行在注释的方法之前,仅运行一次。");
        System.out.println("------------------------------------------------------------");
    }

    @AfterSuite
    public void afterSuit(){
        System.out.println("@AfterSuit,在该套件的所有测试都运行在注释方法之后,仅运行一次。");
    }

    @BeforeTest
    public void beforeTest(){
        System.out.println("@BeforeTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。");
    }

    @AfterTest
    public void afterTest(){
        System.out.println("@AfterTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。");
        System.out.println("------------------------------------------------------------");
    }

    @BeforeClass
    public void beforeClass(){
        System.out.println("@BeforeClass,在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。");
    }

    @AfterClass
    public void afterClass(){
        System.out.println("@AfterClass,在调用当前类的第一个测试方法之后运行,注释方法仅运行一次。");
    }

    @BeforeGroups
    public void beforeGroups(){
        System.out.println("@BeforeGroups,配置方法将在之前运行组列表。 此方法保证在调用属于这些组中的任何一个的第一个测试方法之前不久运行。");
    }

    @AfterGroups
    public void afterGroups(){
        System.out.println("@AfterGroups,此配置方法将在之后运行组列表。该方法保证在调用属于任何这些组的最后一个测试方法之后不久运行。");
    }

    @BeforeMethod
    public void beforeMethod(){
        System.out.println("@BeforeMethod,注释方法将在每个测试方法之前运行。");
    }

    @AfterMethod
    public void afterMethod(){
        System.out.println("@AfterMethod,注释方法将在每个测试方法之后运行。");
    }

    @Test
    public void deConfigTest1(){
        System.out.println("@Test-- deConfigTest1 -- HelloWord");
    }

    @Test(groups = {"group1"})
    public void deConfigTest2(){
        System.out.println("@Test-- deConfigTest2 -- HelloWord, group1");
    }

    @Test(groups = {"group1","group2"})
    public void deConfigTest3(){
        System.out.println("@Test-- deConfigTest3 -- HelloWord, group1 & group2");
    }

    @Test(groups = {"group2"})
    public void deConfigTest4(){
        System.out.println("@Test-- deConfigTest4 -- HelloWord, group2");
    }

}

3)testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<!-- @BeforeSuite -->
<suite name="TestAll">

    <!-- @BeforeTest -->
    <test name="case1">
        <classes>
            <!--<class name="com.hf.testng.TestDBConnection" />-->
            <class name="com.hf.testng.DBConfig" />
        </classes>
    </test>
    <!-- @AfterTest -->

    <!-- @BeforeTest -->
    <test name="case2">
        <classes>
            <class name="com.hf.testng.TestDBConnection">
                <methods>
                    <include name="runOtherTest1"></include>
                </methods>
            </class>
            <class name="com.hf.testng.DBConfig" />
        </classes>
    </test>
    <!-- @AfterTest -->

    <!-- @BeforeTest -->
    <test name="case3">
        <classes>
            <class name="com.hf.testng.TestDBConnection">
                <methods>
                    <exclude name="runOtherTest1"></exclude>
                </methods>
            </class>
            <class name="com.hf.testng.DBConfig" />
        </classes>
    </test>
    <!-- @AfterTest -->


    <!-- @BeforeTest -->
    <test name="case4">
        <groups>
            <run>
                <include name="group2"></include>
            </run>
        </groups>
        <classes>
            <class name="com.hf.testng.TestDBConnection"></class>
            <class name="com.hf.testng.DBConfig"></class>
        </classes>
    </test>
    <!-- @AfterTest -->

</suite>
        <!-- @AfterSuite -->

4)运行结果:

@BeforeSuit,在该套件的所有测试都运行在注释的方法之前,仅运行一次。
------------------------------------------------------------
@BeforeTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。
@BeforeClass,在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest1 -- HelloWord
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest2 -- HelloWord, group1
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest3 -- HelloWord, group1 & group2
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest4 -- HelloWord, group2
@AfterMethod,注释方法将在每个测试方法之后运行。
@AfterClass,在调用当前类的第一个测试方法之后运行,注释方法仅运行一次。
@AfterTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。
------------------------------------------------------------
@BeforeTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。
@Test-- runOtherTest1
@BeforeClass,在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest1 -- HelloWord
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest2 -- HelloWord, group1
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest3 -- HelloWord, group1 & group2
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest4 -- HelloWord, group2
@AfterMethod,注释方法将在每个测试方法之后运行。
@AfterClass,在调用当前类的第一个测试方法之后运行,注释方法仅运行一次。
@AfterTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。
------------------------------------------------------------
@BeforeTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。
@Test-- runOtherTest2, group2
@Test-- runOtherTest3
@BeforeClass,在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest1 -- HelloWord
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest2 -- HelloWord, group1
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest3 -- HelloWord, group1 & group2
@AfterMethod,注释方法将在每个测试方法之后运行。
@BeforeMethod,注释方法将在每个测试方法之前运行。
@Test-- deConfigTest4 -- HelloWord, group2
@AfterMethod,注释方法将在每个测试方法之后运行。
@AfterClass,在调用当前类的第一个测试方法之后运行,注释方法仅运行一次。
@AfterTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。
------------------------------------------------------------
@Test-- runOtherTest2, group2
@Test-- deConfigTest3 -- HelloWord, group1 & group2
@Test-- deConfigTest4 -- HelloWord, group2
@AfterSuit,在该套件的所有测试都运行在注释方法之后,仅运行一次。

===============================================
TestAll
Total tests run: 18, Failures: 0, Skips: 0
===============================================


Process finished with exit code 0
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值