大家好,我是剛哥。
本文將介紹兩種運行TestNG的方式:
- IDEA
- 命令行
IDEA
IDEA配置TestNG可以參考我之前的這篇文章《2021年搭建Java環境最快辦法》--添加TestNG。
在IDEA中運行TestNG第①種點擊方法或類前面的小箭頭:
第②在方法或類內部點擊右鍵:
第③種方式是使用testng.xml,IDEA可以右鍵testng.xml來運行,在文件名和文件內部點擊均可:
testng.xml支持很多種配置,比如配置測試類:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Nopackage" >
<classes>
<class name="NoPackageTest" />
</classes>
</test>
<test name="Regression1">
<classes>
<class name="test.sample.ParameterSample"/>
<class name="test.sample.ParameterTest"/>
</classes>
</test>
</suite>
配置測試包:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1" >
<packages>
<package name="test.sample" />
</packages>
</test>
</suite>
配置組和方法:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1">
<groups>
<run>
<exclude name="brokenTests" />
<include name="checkinTests" />
</run>
</groups>
<classes>
<class name="test.IndividualMethodsTest">
<methods>
<include name="testMethod" />
</methods>
</class>
</classes>
</test>
</suite>
默認TestNG會按xml順序執行,可以設置 preserve-order
爲false變成隨機順序:
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1" preserve-order="false">
<classes>
<class name="test.Test1">
<methods>
<include name="m1" />
<include name="m2" />
</methods>
</class>
<class name="test.Test2" />
</classes>
</test>
</suite>
命令行
使用以下命令執行TestNG:
java org.testng.TestNG testng1.xml [testng2.xml testng3.xml ...]
這在持續集成中很有用。但這是官方給的命令,實際調用是調不通的,可以藉助Maven來實現。
先在pom.xml添加:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
然後執行mvn clean test
命令就行啦。
參考資料: