2017-08-03 46 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是可能的,但很难看。你应该怀疑用某种配置测试一个是否足以涵盖所有其他配置。 –