testng 执行多个suite
我们知道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就可以了,最后执行结果如下图所示: