我的要求是我必须重复一个套件(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)
答案 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,也可以并行执行。
如果这解决了您的问题,请告诉我。