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

testng 执行多个suite-编程知识网