我們知道testng的配置文件,一個.xml里面只能有一個suite,那么如果想要設置多個suite怎么弄呢?這個時候我們需要用到testng的標簽<suite-files>.
下面說一下我弄的一個實例,首先我有兩的suite,一個是UItest.xml,一個是APITest.xml,代碼如下:
UITest.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="UI test"> <test name="baidu search test"> <classes> <class name="testcase.CheckLink"></class> </classes> </test> </suite>
APITest.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="APITest"> <test name="API"> <classes> <class name="APITestcase.CheckWeather"></class> </classes> </test> </suite>
這時候我也說說我走過的彎路吧,我的項目用了maven,maven關聯testng文件時用的是<suiteXmlFiles>,如下圖所示:
<!--讀取testNg配置文件--> <suiteXmlFiles> <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> </suiteXmlFiles>
最初我是想着只要配置多一個<suiteXmlFile>就可以了,嘗試之后發現並不可行,從執行日志中可以看到已經執行完所有的測試類,但是html測試報告中只顯示了一個suite的測試結果,事與願違,所以放棄了這種配置方法,當然了這也很有可能是因為maven+testng+reportng有些關系配置我不懂造成的,他日這個方法如果可行我再來更新。
話歸正題,最后為了代碼簡潔,我另外用一個testng.xml來把APITest.xml和UITest.xml整合起來,如下圖所示:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="systemTest"> <suite-files> <suite-file path="APITest.xml"></suite-file> <suite-file path="UITest.xml"></suite-file> </suite-files> </suite>
然后在 maven里只關聯testng.xml就可以了,最后執行結果如下圖所示: