2017-04-27 83 views
1

我的要求是我必須重複一個套件(SBSuite.xml),該套件有多個測試,具有不同的參數集。我嘗試了下面的配置,但得到錯誤。我們可以重複套件文件還是使用params多次重複單個套件文件的正確解決方案是什麼?如何重複使用不同參數的testng套件文件

<?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

您使用哪種TestNG版本?你可以試用最新版本嗎? – juherr

+1

這個問題已經知道了:https://github.com/cbeust/testng/issues/951 – juherr

+0

謝謝@juherr,貌似唯一的解決辦法就是將套件複製到鏈接的ChromeSuite.xml,FFSuite.xml和運行主人套房。 – vikas

回答

0

正如你剛纔提到你have to repeat a suite (SBSuite.xml) which has multiple tests, with different set of parameters IMO倒不如把整個測試步驟下Test註釋。通過<parameter>標籤創建單個測試套件,並使用不同的參數集執行測試套件。例如<parameter name="browser" value="firefox"/>

請記住保持測試套件的名稱不同。通過這種方法,您可以一個接一個地並行執行TestSuites。

讓我知道這是否解決您的問題。

+0

@vikas我的答案解決了你的問題嗎? – DebanjanB

+0

我想你建議爲不同的瀏覽器創建不同的節點。這將工作,但不會解決我的需要。我的需要是我有大約20個,我不想把它們放在一起測試。其次,我不想複製具有不同參數的相同套件(例如FireFoxSuite.xml,IESuite.xml)以在不同的瀏覽器上運行。所以我遵循了我在問題中提到的方法。但它是拋出錯誤。 – vikas

相關問題