項(xiàng)目地址:https://gitee.com/neimenggudaxue/BasicTest
在xml配置文件里,不僅可以選擇某些需要執(zhí)行的測(cè)試腳本耸彪,還可以排除某些不需要運(yùn)行的測(cè)試腳本焦除。
一墨辛、創(chuàng)建配置文件testNG.xml
1)首先要聲明一個(gè)suite的名字蔑祟,用于描述將要運(yùn)行的測(cè)試腳本集晌区,可以根據(jù)自己需要任意命名,最終這個(gè)名字會(huì)在testng的測(cè)試報(bào)告中看到屁置。
<?xml version="1.0" encoding="utf-8" ?>
<suite name="Suite1" verbose="1">
</suite>
2)如果選擇的測(cè)試腳本是基于組的(使用了@Test (groups={"group1"})這樣的注解)焊夸,那么接下來(lái)需要聲明如何使用這些組:包含或者排除。
使用include標(biāo)簽標(biāo)注某些組:那么在選擇的測(cè)試腳本中蓝角,只有屬于那些組的測(cè)試腳本會(huì)被運(yùn)行阱穗。那些未被選中的測(cè)試腳本,或者被選中卻不屬于某些組的測(cè)試腳本都不會(huì)被運(yùn)行使鹅。
使用exclude標(biāo)簽標(biāo)注某些組:那么在選擇的腳本中揪阶,只有不屬于那些組的測(cè)試腳本會(huì)被運(yùn)行。
同時(shí)使用include標(biāo)簽和exclude標(biāo)簽:那么擁有被include標(biāo)注的組的那些腳本會(huì)被運(yùn)行并徘,擁有被exclude標(biāo)注的腳本不會(huì)被運(yùn)行遣钳。有一個(gè)例外是,一個(gè)組同時(shí)被include和exclude標(biāo)注了麦乞,那么擁有這個(gè)組的腳本會(huì)被運(yùn)行。
1.選擇一個(gè)類中的全部測(cè)試腳本
Test.xml
<?xml version="1.0" encoding="utf-8" ?>
<suite name="Suite2" verbose="1">
<test name="test">
<classes>
<class name="testNG.TestNGTest" />
</classes>
</test>
</suite>
//右鍵執(zhí)行Test.xml結(jié)果
testNG.TestNGTesttest3
testNG.TestNGTesttest3
testNG.TestNGTesttest3
testNG.TestNGTesttest2
testNG.TestNGTesttest2
2.選擇一個(gè)包中的全部測(cè)試腳本(包含子包)
testNGProfile.xml
<?xml version="1.0" encoding="utf-8" ?>
<suite name="testNgProfile" verbose="1">
<test name="test1">
<packages>
<package name="testNG2">
</package>
</packages>
</test>
</suite>
//右鍵執(zhí)行testNGProfile.xml結(jié)果
testNG2.TestNGProfile2.test1
testNG2.TestNGProfile2.test2
3.選擇一個(gè)類中的部分測(cè)試腳本
testNGProfile1.xml
<?xml version="1.0" encoding="utf-8" ?>
<suite name="suit2" verbose="1">
<test name="allTestsInAClass">
<classes>
<class name="testNG.TestNGProfile">
<methods>
<include name="test2"/>
<exclude name="test1"/>
</methods>
</class>
</classes>
</test>
</suite>
//右鍵執(zhí)行testNGProfile1結(jié)果
testNG.TestNGProfile.test2
4.選擇一個(gè)包中的某些組
testNGProfile2.xml
<?xml version="1.0" encoding="utf-8" ?>
<suite name="suit3" verbose="1">
<test name="test3">
<groups>
<run>
<include name="group1" />
</run>
</groups>
<packages>
<package name="testNG2.*"/>
</packages>
</test>
</suite>
//右鍵執(zhí)行testNGProfile2.xml結(jié)果
testNG2.TestNGProfile2.test1
5.選擇排除包中的某些組
testNGProfile3.xml
<?xml version="1.0" encoding="utf-8" ?>
<suite name="suit3" verbose="1">
<test name="test3">
<classes>
<class name="testNG.TestNGProfile">
<methods>
<exclude name="test1"/>
</methods>
</class>
</classes>
</test>
</suite>
//右鍵執(zhí)行testNGProfile3.xml結(jié)果
testNG.TestNGProfile.test2
二劝评、在maven的pom.xml文件中配置testng.xml,注意testNG.xml的路徑
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>qufang</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.30</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArgs>
<arg>-Xlint:unchecked</arg>
<arg>-Xlint:deprecation </arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<suiteXmlFiles>
<file>res/testNG.xml</file>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
</project>