TestNG的DTD檢查文件:http://testng.org/testng-1.0.dtd.php
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <!--suite(測試套件)為根路徑,僅允許出現1次,是多個test(測試用例)的集合,以下為各屬性含義及取值@name 必填,標記suite的名稱@junit 選填,是否以junit模式運行,可選值(true|false) 默認值"false"@verbose 選填,命令行信息打印等級(與測報內容無關),可在測試代碼注釋中配置,可選值(1|2|3|4|5)@parallel 選填,是否多線程并發運行測試,可選值(false | methods | tests | classes | instances),默認 "false"@thread-count 選填,填寫值為正整數,當為并發執行時的線程池數量,默認為"5"@configfailurepolicy 一旦Before/After Class/Methods這些方法失敗后,是繼續執行測試還是跳過測試;可選值 (skip | continue),默認"skip@annotations="javadoc" 獲取注解的位置,如果為"javadoc", 則使用javadoc注解,否則使用jdk注解@time-out 為具體執行單元設定一個超時時間,具體參照parallel的執行單元設置;單位為毫秒@skipfailedinvocationcounts 是否跳過失敗的調用,可選值(true | false),默認"false"@data-provider-thread-count 并發執行時data-provider的線程池數量,默認為"10"@object-factory 一個實現IObjectFactory接口的類,用來實例測試對象@allow-return-values="true" 是否允許返回函數值,可選值(true | false),默認"false"@preserve-order:順序執行開關,可選值(true | false) "true"@group-by-instances:是否按實例分組,可選值(true | false) "false"@guice-stage 支持使用JSR-330的?@Inject注解?來配置運行時提供的實例@parent-module 和Guice框架有關,只運行一次,創建一個parent injector給所有guice injectors--> <suite name="suitename" junit="false" verbose="3" parallel="false" thread-count="5" configfailurepolicy="skip"annotations="javadoc" time-out="10000" skipfailedinvocationcounts="true" data-provider-thread-count="5"object-factory="classname" allow-return-values="true" preserve-order="true" group-by-instances="false"><!--可以執行多個suite,@path 必填,欲引用的suitefile的絕對路徑--><suite-files><suite-file path="/path/to/suitefile1"></suite-file></suite-files><!--全局參數,@name和@value必填,分別為參數名和參數值--><parameter name="par1" value="value1"></parameter><parameter name="par2" value="value2"></parameter><!--方法選擇器,在suite/test中增加需要額外執行的類(根據父標簽而定),及安排執行優先級--><method-selectors><method-selector><!--@name 必填@priority 選填--><selector-class name="classname" priority="1"></selector-class><!--@language 必填--><script language="java"></script></method-selector></method-selectors><!--test定義一次測試執行,以下為各屬性含義及取值@name:必填,test的名字,測試報告中會有體現@junit:選填,是否以Junit模式運行,可選值(true | false),默認"false"@verbose:選填,命令行信息打印等級,不會影響測試報告輸出內容;可選值(1|2|3|4|5)@parallel:選填,是否多線程并發運行測試;可選值(false | methods | tests | classes | instances),默認 "false"@thread-count:選填,當為并發執行時的線程池數量,默認為"5"@annotations:選填,獲取注解的位置,如果為"javadoc", 則使用javadoc注解,否則使用jdk5注解@time-out:選填,為具體執行單元設定一個超時時間,具體參照parallel的執行單元設置;單位為毫秒@enabled:選填,設置當前test是否生效,可選值(true | false),默認"true"@skipfailedinvocationcounts:選填,是否跳過失敗的調用,可選值(true | false),默認"false"@preserve-order:選填,順序執行開關,可選值(true | false) "true"@group-by-instances:選填,是否按實例分組,可選值(true | false) "false"@allow-return-values:選填,是否允許返回函數值,可選值(true | false),默認"false"--><test name="testename" junit="false" verbose="3" parallel="false" thread-count="5" annotations="javadoc"time-out="10000" enabled="true" skipfailedinvocationcounts="true" preserve-order="true"allow-return-values="true"><!--局部參數,@name和@value必填,分別為參數名和參數值,如果參數名與全局參數一致,則覆蓋全局參數取值--><parameter name="par1" value="value1"></parameter><parameter name="par2" value="value2"></parameter><!--搭配class使用,執行class內指定組--><groups><!--定義執行組名,在run中使用@name 必填,組中組的名稱--><define name="xxx"><!--定義包含的測試組,測試方法屬于哪個測試組在測試代碼注釋中定義。@name 必填,需要包含進組中組的組名@description 選填,關于組的描述@invocation-numbers 選填,執行次序或者執行次數——TODO--><include name="" description="" invocation-numbers=""/><include name="" description="" invocation-numbers=""/></define><!--運行組中組的配置--><run><!--執行指定的組中組,@name必填,與define name一致--><include name=""/><!--排除指定的組中組,@name必填,與define name一致--><exclude name=""/></run><!--組中組的依賴配置--><dependencies><!--配置依賴@name 必填,需要依賴其他組的組名,define中設置@depends-on 必填,被依賴的組名,define中設置,可以有多個,用空格隔開--><group name="" depends-on=""></group><group name="" depends-on=""></group></dependencies></groups><!--配置要執行的類,是多個class的集合--><classes><!--局部參數,@name和@value必填,分別為參數名和參數值,如果參數名與全局參數和父標簽的局部參數一致,則覆蓋全局參數和父標簽的局部參數取值--><parameter name="par1" value="value1"></parameter><parameter name="par2" value="value2"></parameter><!--多個methods的集合,@name 必填,對應class的名稱,如com.example.autotest.testcase--><class name="classname"><!--要執行的方法,如為空,則執行整個class內包含的全部方法--><methods><!--局部參數,@name和@value必填,分別為參數名和參數值,如果參數名與全局參數和父標簽的局部參數一致,則覆蓋全局參數和父標簽的局部參數取值--><parameter name="par3" value="value3"></parameter><!--類內要執行的測試方法名,在測試代碼注釋中配置,如設置inclde,則只執行該方法,其他跳過@name 必填,執行方法名@description 選填,方法描述@invocation-number 選填,宣發執行順序或執行次數——TODO--><include name="" description="" invocation-numbers=""></include><!--除了該方法外,類內其他方法都執行,@name 必填,不執行的方法名--><exclude name=""></exclude></methods><methods></methods></class></classes><!--可以執行指定包下面所有類,是多個package的匯聚--><packages><!--配置要執行的包,@name 必填,要執行的package名,如com.example.autotest--><package name=""><!--包內要執行的測試方法名,在測試代碼注釋中配置,如設置inclde,則只執行該方法,其他跳過@name 必填,執行方法名@description 選填,方法描述@invocation-number 選填,宣發執行順序或執行次數——TODO--><include name="" description="" invocation-numbers=""></include><!--除了該方法外,包內其他方法都執行,name 必填,不執行的方法名--><exclude name=""></exclude></package></packages></test><!--設置監聽的類名,可設置多個,class-name 必填,類名,如com.example.autotest.Listener--><listeners><listener class-name="classname1"/><listener class-name="classname2"/></listeners> </suite>
轉載至:https://testerhome.com/topics/10093