欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

testNG标签范围及多suite配置

程序员文章站 2022-05-31 23:27:10
...
一、基本注解及其作用范围
1、testNG的基本注解标签:
@Test:用来把方法标记为测试的一部分
@BeforeSuite:对于套件测试,此套件中的所有测试运行之前运行,只运行一次;一个testng.xml文件中只能有一个suite,要想运行多个suite,需要使用<suite-files>标签,后面介绍
@AfterSuite:对于套件测试,此套件中的所有测试运行之后运行,只运行一次;
@BeforeTest:对于套件测试,在testng.xml中所有<test>标签内的所有类的测试方法执行之前运行
@AfterTest:所有<test>内测试方法执行之后运行
@BeforeClass:在调用当前类之前运行
@AfterClass:在调用当前类之后运行
@BeforeMethod:在每个测试方法执行之前都会运行
@AfterMethod:在每个测试方法执行之后都会运行
@BeforeGroups:在调用属于该组的第一个测试方法之前运行
@AfterGroups:在调用属于该组的最后一个测试方法执行之后运行

testng运行时,顺序是这样的:
@BeforeSuite->@BeforeTest->@BeforeClass->{@BeforeMethod->@Test->@AfterMethod}->@AfterClass->@AfterTest->@AfterSuite,其中{}内的有多少个@Test,就循环执行多少次。

2、注解范围:
       除了@BeforeSuite、@BeforeTest、@AfterTest、@AfterSuite可以对不同的测试类生效外,其他的注解的作用范围只在本类中生效。

testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Suite" parallel="none">
<suite name="Suite1"    verbose="1" >
    <test name="Test">
        <groups>
            <run>
                <include name="functiontest" />
                <exclude name="brokenTests"  />
            </run>
        </groups>
        <classes>
            <class name="TestNGLearn1"/> 
            <methods>
                 <include name="TestNgLearn" /> 
            </methods>
        </classes>
    </test> 
    <test>
        <classes>
            <class name="com.janson.TestNG1"/>
            <class name="com.janson.TestNG2"/>
        </classes>
    </test>
</suite> 


二、多suite配置
        testng的配置文件,一个.xml里面只能有一个suite,那么如果想要设置多个suite怎么弄呢?这个时候需要用到testng的标签<suite-files>。
        UITest.xml:
       
        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
            <suite name="UI test">
                <test name="baidu search test">
                    <classes>
                        <class name="testcase.CheckLink"></class>
                    </classes>
               </test>
           </suite>
          


         APITest.xml:
        
         <?xml version="1.0" encoding="UTF-8" ?>
         <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
             <suite name="APITest">
                 <test name="API">
                     <classes>
                         <class name="APITestcase.CheckWeather"></class>
                     </classes>
                 </test>
            </suite>
         

        最后在testng.xml中把APITest.xml和UITest.xml整合起来即可实现多suite,如下图所示:
        <code="java"]
        <?xml version="1.0" encoding="UTF-8" ?>
        <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
            <suite name="systemTest">
                <suite-files>
                    <suite-file path="APITest.xml"></suite-file>
                    <suite-file path="UITest.xml"></suite-file>
                </suite-files>
           </suite>
        </code>

相关标签: testNG