如何使用不同的参数重复testng suite文件

时间:2017-04-27 11:06:57

标签: testng

我的要求是我必须重复一个套件(SBSuite.xml),它具有多个测试,具有不同的参数集。我尝试了以下配置,但收到错误。我们可以重复套件文件或使用params多次重复单个套件文件的正确解决方案吗?

<?xml version="1.0" encoding="UTF-8"?>
<suite name="SBCrossBrowser">
    <listeners>
        <listener class-name="net.sf.testng.databinding.TestAnnotationTransformer"></listener>
    </listeners>
    <suite-files>
        <parameter name="browser" value="CHROME" />
        <suite-file path="SBSuite.xml"/>
    </suite-files>


    <suite-files>
        <parameter name="browser" value="IE" />
        <suite-file path="SBSuite.xml"/>
    </suite-files>
</suite>

我收到以下错误:

org.testng.TestNGException: 
Two suites cannot have the same name: SBSuite
    at org.testng.TestNG.checkSuiteNamesInternal(TestNG.java:1019)
    at org.testng.TestNG.checkSuiteNamesInternal(TestNG.java:1022)
    at org.testng.TestNG.checkSuiteNames(TestNG.java:1012)
    at org.testng.TestNG.sanityCheck(TestNG.java:985)
    at org.testng.TestNG.run(TestNG.java:1037)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)

1 个答案:

答案 0 :(得分:0)

正如您提到的那样have to repeat a suite (SBSuite.xml) which has multiple tests, with different set of parameters IMO,最好将整个测试步骤放在Test注释下。通过<parameter>标记创建单个Test Suite,使用不同的参数集执行。例如<parameter name="browser" value="firefox"/>

请记住保持测试套件的名称不同。通过这种方法,您可以一个接一个地执行TestSuites,也可以并行执行。

如果这解决了您的问题,请告诉我。