2016-11-04 33 views
0

我有一種情況需要在testng套件上實現切換機制,以決定是否並行運行測試。參數化testng.xml套件標籤中的parallel =「methods」屬性

目前我的testng.xml看起來如下:

<suite name="XYZ" parallel="methods" thread-count="3"> 
    <test verbose="2" name="ABC"> 
     <classes> 
      <class name="xx.yy"> 
       <methods> 
        <include name="test3" /> 
        <include name="test2" /> 
        <include name="test1" /> 
       </methods> 
      </class> 
      </classes> 
    </test> 
</suite> 

我的目標是能夠指定類似:

<suite name="XYZ" parallel="$PARALLEL_FLAG" thread-count="3"> 

在$ PARALLEL_FLAG可取的值methodsfalse動態。

回答

1

都不存在開箱即用,但你可以自己與對其進行管理:

  1. 一個XSLT文件,該文件將預處理的文件,或
  2. ,你可以嘗試使用ISuiteListener和修改parallel屬性從XmlSuite那裏,取決於你自己的邏輯(但我沒有檢查它是否工作)。
+0

由於@Krishnan_Mahadevan提出,更喜歡IAlterSuiteListener作爲聽衆 – juherr

+0

這很好。謝謝,我在測試6.8.14,也許爲什麼我沒有IAlterSuiteListener。不過謝謝@Krishnan_Mahadevan。 – trial999

+0

以下是代碼。 @Override public void onStart(ISuite iSuite){ XmlSuite xmlSuite = iSuite.getXmlSuite(); xmlSuite.setParallel(「methods」); } – trial999

2

您可以使用IAlterSuiteListener暴露實際XmlSuite TestNG的對象甚至開始建立一套工人來執行,從而給你一個機會來改變任何你想之前。此聆聽者與所有其他聽衆在執行方面完全相同,

您只需確保通過套件文件(或)中的<listeners>標記通過服務加載器連接IAlterSuiteListener實現。唯一需要注意的是,您無法通過@Listeners註釋來連接此偵聽器實現。