命令列執行testNG
阿新 • • 發佈:2019-01-27
testNG的執行有2種基本方式:
1、通過指定的XML檔案來規定要執行的用例檔案和用例【適用於批量】
2、通過命令列引數來指定執行的用例檔案和用例【適用於較少的用例檔案】
XML模板:【儲存為testng.xml】
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="Default suite"> <test verbose="2" name="Default test"> <classes> <class name="JavaSeleniumTestCase110"/> <!-- 針對沒有用package管理的測試用例檔案 --> <class name="com.package.Test02"/> <!-- 包.類名的方式呼叫,針對用package來管理的測試用例檔案 --> </classes> </test> <!-- Default test --> <test name="Regression1" preserve-order="false"> <!-- 預設順序執行為關閉,即非順序方式執行 --> <classes> <class name="com.package.Test1"> <methods> <include name="m1" /> <!-- 列出指定要執行的方法 --> <exclude name="m2" /> <!-- 列出指定不執行的方法 --> </methods> </class> </classes> </test> <test verbose="3" name="test2"> <groups> <run> <exclude name="brokenTests" /> <!-- 列出指定不執行的組 --> <include name="checkinTests" /> <!-- 列出指定要執行的組 --> </run> </groups> <packages> <package name="com.sample1" /> <!-- 執行com.sample包下的所有測試用例檔案 --> <package name="com.sample2" /> </packages> </test> </suite>
xml的呼叫命令:【testng.xml可以使用絕對路徑】
java org.testng.TestNG testng.xml,testng2.xml, ...
命令列的呼叫命令:【不帶包名和帶包名的呼叫方式】
java org.testng.TestNG -testclass JavaSeleniumTestCase110
java org.testng.TestNG -testclass package.JavaSeleniumTestCase111
注:
什麼時候帶包名?【不管哪種形式的呼叫】
只有測試用例檔案的程式碼裡使用了包來管理時才使用,直接使用包的全路徑即可。如:com.test.testcase
無法找測試用例類檔案?
這裡要注意執行時,testNG會在classpath中查詢測試用例檔案,所以需要讓測試檔案classpath下可以找到即可。
如何設定測試檔案到classpath?
如果測試程式碼中使用了包管理,則把頂層包的父目錄新增到classpath即可。
如果測試檔案程式碼沒有用到包管理,則直接把測試用例檔案的父目錄新增到classpath即可;
此外可以通過命令列直接設定classpath:
java -classpath "%classpath%;D:\path\to\your\testfiles" org.testng.TestNG -testclass package.JavaSeleniumTestCase112