在柑橘测试用例中使用Maven属性

时间:2018-08-16 07:42:14

标签: maven properties citrus-framework

我想在柑橘类测试案例中使用在maven pom.xml中定义的属性。

根据环境,将激活一个不同的配置文件,然后定义不同的主机名,端口,... 在柑橘测试用例中,我想使用这些maven属性根据环境将请求定向到正确的主机。

如何解决此问题? 确实尝试过env()和systemProperty()函数,但它们没有为我提供这些值。 另外,我确实尝试使用弹簧方法并尝试设置 hostname = @ hostname.property.from.maven @ 不幸的是,这也不起作用。

使用的版本:

  • Citrus Framework 2.7.5
  • Maven 3.5.0

1 个答案:

答案 0 :(得分:0)

Citrus测试是在Maven中使用maven-failsafe插件(如果需要的话,也可以使用maven-surefire)执行的。因此,您需要将系统属性传递到该插件配置以进行测试执行。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <configuration>
      <systemPropertyVariables>
        <foo.server.host>127.0.0.1</foo.server.host>
        <foo.server.port>8080</foo.server.port>
      </systemPropertyVariables>
    </configuration>
</plugin>

Maven测试执行现在可以看到系统属性,因此可以在Spring和Citrus组件中使用这些属性。例如,您可以使用Spring的属性占位符配置器。

Maven故障安全插件配置还能够解析Maven项目属性。

<properties>
  <server.host>127.0.0.1</server.host>
  <server.port>8080</server.port>
</properties>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <configuration>
      <systemPropertyVariables>
        <foo.server.host>${server.host}</foo.server.host>
        <foo.server.port>${server.port}</foo.server.port>
      </systemPropertyVariables>
    </configuration>
</plugin>

您现在应该能够基于Maven配置文件激活和环境设置来设置这些属性。