如何设置系统变量以用于maven故障安全测试?

时间:2012-08-27 06:51:15

标签: java maven maven-failsafe-plugin system-variable integration-testing

我试图在没有我需要设置的环境变量的构建服务器上运行测试。

该变量在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验证。

干杯, 彼得

1 个答案:

答案 0 :(得分:1)

显示的配置的false值为<forkMode>,根据docs,该参数似乎不是此参数的有效值。

我认为插件配置中指定的环境和系统变量适用于当前运行的JVM;如果插件创建了一个用于运行测试的新JVM,则它们适用。我的猜测是forkMode参数中的false值导致forking不发生。尝试将其保留为默认值(once)并查看是否有效。