我试图在没有我需要设置的环境变量的构建服务器上运行测试。
该变量在spring上下文xml文件中用于解析属性文件的位置。
e.g。类路径:配置/ $ {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运行此命令验证-DEnvironmentType =&#34; DevelopmentIntegration&#34;作品。我希望它只使用mvn验证。
干杯, 彼得
答案 0 :(得分:1)
显示的配置的false
值为<forkMode>
,根据docs,该参数似乎不是此参数的有效值。
我认为插件配置中指定的环境和系统变量不适用于当前运行的JVM;如果插件创建了一个用于运行测试的新JVM,则它们适用。我的猜测是forkMode参数中的false
值导致forking不发生。尝试将其保留为默认值(once
)并查看是否有效。