1. 程式人生 > >命令列執行testNG

命令列執行testNG

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