2016-01-13 61 views
0

我在Jenkins和Maven中運行我的測試,並在幾個TestNG.xml文件中有不同的測試套件。 現在我直接管理他們的POM這樣:從Jenkins管理TestNg套件參數化版本

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>${surefire.version}</version> 
    <configuration> 
     <suiteXmlFiles> 
      <suiteXmlFile>Testing_Fuzzy_Logic.xml</suiteXmlFile> 
      <suiteXmlFile>Testing_ACL.xml</suiteXmlFile> 
     </suiteXmlFiles> 
    </configuration> 
</plugin> 

但我希望能夠選擇一個特定的測試套件的時候開始詹金斯建設。如果我沒有選擇特定的套件,我希望所有套件都作爲默認包含在構建中。所以我的問題是:

在Jenkins參數中編寫我所有的TestNG.xml文件並將它們發送到pom文件以問Maven在運行測試時使用它們的正確方法是什麼?

事情是這樣的:

詹金斯變量:

enter image description here

它集以某種方式POM文件:

enter image description here

回答

0

問題已通過上面的例子來解決。起初在文件名中有一個錯誤,它讓我困惑。我修好了,現在我的例子工作正常。

所以解決方案之一是:一個字符串TEST_NG_XML參數被添加到參數化的詹金斯構建。所有測試套件都在那裏設置,默認情況下用逗號分隔。在需要時,可以將它們中的任何一個移除(參見上面的示例)。

但是,如果有其他解決方案,我會很高興看到他們。

0

在詹金斯,你可以通過頂層Maven目標在以下格式

test -DargLine="-DTest_NG_XML=src/test/resources/testng.xml" 

這樣,你是通過你的Test_NG_XML變量的值在運行行家測試phase.In一般執行以下Maven目標在詹金斯。

-DargLine="-Dparameter=value" 
0

測試-DsuiteXmlFile =的src /測試/資源/ testng1.xml,SRC /測試/資源/ testng2.xml

一個如何能夠確保測試套件的執行優先通過這種方式?

我面臨着同樣的問題,我已經將它拆分成單獨的Jenkins構建,每個構件都通過單獨的套件,以確保某個套件在另一個套件之前運行。 我想簡化它,可能如上所述通過這種方式......但你是否嘗試執行的順序?謝謝