2017-08-03 47 views
0

我正在爲Maven中的WCC-Component構建集成測試。Maven測試 - 如何從Java獲取當前的Maven設置

在內行pom.xml我已經配置過一個插件:

  1. 構建組件
  2. 部署組件
  3. 啓用組件
  4. 重啓組件

一旦這個完成我正在努力獲取Maven-Failsafe-Plugin來測試已安裝的插件。

在我測試插件之前,我需要設置一些東西。我決定最簡單的方法是爲我的集成測試創建一個父類,只有在它尚未運行時纔會初始化。

例子:

@BeforeClass 
public static initialize() 
{ 
    //lazy init here 
} 

,因爲我的組件已經安裝/從Maven配置我想利用這些信息,而不是重複它集成測試啓用。

在我pom.xml我:

<plugin> 
    <groupId>org.ucmtwine</groupId> 
    <artifactId>ucm-maven-plugin</artifactId> 
    <version>0.1.2-SNAPSHOT</version> 
    <extensions>true</extensions> <!-- Allows WCC packaging type --> 
    <configuration> 
    <servers> 
     <server>    
     <id>sandbox</id> 
     <url>http://localhost:16200/cs/idcplg</url> 
     <username>myUser</username> 
     <password>myPass</password> 
     <adminServer> 
      <hostname>localhost</hostname> 
      <serverName>AdminAServer</serverName> 
      <wlsServerName>UCM_server1</wlsServerName> 
     </adminServer> 
     </server> 
    </servers> 
    </configuration> 
</plugin> 

如何從我的@BeforeClass初始化方法訪問這些信息?此外,我的Maven插件還支持-Dserver,因此用戶可以選擇使用哪種服務器配置(基於ID)。我如何訪問該參數?

注意:我沒有使用settings.xml這個。

+0

你在談論一個WCC組件和一個maven-plugin。你們開發人員中的哪一個(或者你們都是這樣做的?) –

+0

@RobertScholte我創建了兩個; https://github.com/raystorm/ucm-maven-plugin目前的問題是關於在組件測試中使用插件配置。 – Raystorm

+0

@Raystorm您的存儲庫不允許打開問題..因爲這個插件使用插件作爲依賴關係,我敢打賭,這只是錯誤的... – khmarbaise

回答

0

IMO你不應該嘗試這樣做。 settings.xml作爲Maven和Maven插件可訪問的典型Maven文件。該組件是一個獨立的代碼片段,您不應該嘗試混合這兩個。 我能想到的幾個選項:

  • 與正確的配置,例如餵你的組件集成測試通過系統屬性或屬性文件。在這兩種情況下,您可能需要準備一個額外的maven-plugin(在整合前測試期間)。但是,這使得在IDE內直接運行有點困難。
  • 使用你的maven-plugin來完成組件的真正集成測試。最後,這也可能是組件使用的首選方式。
  • 不要爲此使用maven-failsafe-plugin。爲控制環境設置的集成測試製作一個單獨的Java項目。

前兩場比賽最接近您的要求,但我更喜歡第三個選項。

+0

我試圖澄清我的答案,我沒有使用'settings.xml'文件。 – Raystorm

+0

好的,但它並沒有真正改變這種情況。該組件不在Maven上下文中使用,因此它不應該嘗試使用Maven特定的信息。如果您的目標是在兩個測試中都有一個配置位置,那麼插件和組件都必須能夠處理該文件。給插件一個選項configureFromFile是可能的,但很難看。你應該懷疑用某種配置測試一個是否足以涵蓋所有其他配置。 –