我們知道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就可以了,最后執行結果如下圖所示:

