【发布时间】:2012-08-21 16:05:48
【问题描述】:
我正在尝试在没有设置我需要的环境变量的构建服务器上运行测试。
该变量在 spring 上下文 xml 文件中用于解析属性文件的位置。
例如类路径:config/${EnvironmentType}/myfile.properties
我正在使用故障安全插件并尝试各种记录在案的方法(甚至是已弃用的方法)来设置变量。没有任何区别,变量永远不会被解析。
我的配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<id>Integration tests against mocks</id>
<goals>
<goal>integration-test</goal>
</goals>
<configuration>
<skipTests>${skip.integration.mock.tests}</skipTests>
<includes>
<include>**/*ITMock.java</include>
</includes>
<argLine>-DEnvironmentType="DevelopmentIntegration"</argLine>
<systemPropertyVariables>
<EnvironmentType>DevelopmentIntegration</EnvironmentType>
</systemPropertyVariables>
<environmentVariables>
<EnvironmentType>DevelopmentIntegration</EnvironmentType>
</environmentVariables>
<systemProperties>
<property>
<name>EnvironmentType</name>
<value>DevelopmentIntegration</value>
</property>
</systemProperties>
<forkMode>false</forkMode>
</configuration>
</execution>
<execution>
<id>Verify</id>
<goals>
<goal>verify</goal>
</goals>
<configuration>
<skipTests>false</skipTests>
</configuration>
</execution>
</executions>
</plugin>
如何在不实际设置在机器上的情况下为我的测试设置这个 env var?
注意:使用 mvn verify -DEnvironmentType="DevelopmentIntegration" 运行它可以工作。我希望它只与 mvn verify 一起工作。
干杯, 彼得
【问题讨论】:
-
您是否尝试将版本更新到 2.12.2,因为此版本与文档一致?此外,您是否通过 mvn -X ... 检查了输出...
-
PEBKAC... 上面的配置在父项目中,我没有注意到它被其中一个子项目覆盖。我坚持使用 2.12 作为我的版本。 2.12.2 中断,因为它没有创建故障安全报告目录。
-
谢谢。我不得不进行大量搜索才能完成这项工作,而您的问题回答了我的问题。故障保护插件的文档太少了,互联网上这么多链接只是给出了一个找不到的页面。
标签: java maven maven-failsafe-plugin system-variable integration-testing