TestNG的testng.xml配置概述
阿新 • • 發佈:2019-02-09
TestNG提供的annotaions用來輔助定義測試類。
TestNG的testng.xml配置檔案用來輔助定義執行什麼樣的測試,即testng.xml更像是一個測試規劃。
testng.xml配置檔案的元資料引用http://testng.org/testng-1.0.dtd,其中定義了testng.xml中的元素、屬性和順序等。
1.<suite>
<suite>元素是testng.xml檔案的根元素。
從DTD檔案(如下所示)可以看出,<suite>可以包含一個<groups>元素,用以定義全域性的組,該組對所有的測試可見。
<suite>可以包含多個<test>元素,一個<test>就定義了一個測試用例(其中可能包含多個測試方法)。
<!ELEMENT suite (groups?,(listeners|packages|test|parameter|method-selectors|suite-files)*) >
示例如下:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Suite1" verbose="1" > <groups> <run> <include name="..." /> <exclude name="..." /> </run> </groups> <test name="Regression1"> ... </test> </suite>
2.<test>
<test>元素是<suite>的子元素,用以定義一個測試用例。定義測試用例可以通過<classes>或<packages>。
<!ELEMENT test (method-selectors?,parameter*,groups?,packages?,classes?) >
1). <classes>表示以測試類的方式定義測試用例,粒度較小。示例如下:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Suite1" verbose="1" > <test name="Regression1"> <classes> <class name="test.sample.ParameterSample"/> <class name="test.sample.ParameterTest"/> </classes> </test> </suite>
2). <packages>表示以測試類所在的包的方式定義測試用例,包中的所有測試類都被涉及,粒度較大。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Regression1" >
<packages>
<package name="test.sample" />
</packages>
</test>
</suite>
3). <test>元素中的<groups>元素
我們知道,<suite>中可以定義一個全域性的<groups>。而這裡<test>元素中也可以定義一個自己的<groups>,其中定義的組僅對當前所在的測試用例可見。示例如下:
<test name="Regression1">
<groups>
<run>
<exclude name="brokenTests" />
<include name="checkinTests" />
</run>
</groups>
<classes>
...
</classes>
</test>
注意:在testng.xml配置檔案中,<suite>中可以定義多個<test>,那麼這些<test>的執行順序預設按照其在<suite>中出現的先後順序。當然,也可以提供<test>的preserve-order='false'改變預設順序。
3. <classes>
<test>可以通過<classes>或<packages>定義測試用例,但只是在測試類或類包的層次上,那麼能不能具體到測試類的某個方法呢?
對於<classes>中的一個<class>,可以提供<methods>設定測試方法。示例如下:
<test name="Regression1">
<classes>
<class name="test.Test1">
<methods>
<include name="m1" />
<include name="m2" />
</methods>
</class>
<class name="test.Test2" />
</classes>
</test>
總結:這裡只是介紹了testng.xml的基本結構和組成,詳情還要參考TestNG的文件手冊。