2

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

在 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 一起工作。

干杯,彼得

4

1 回答 1

1

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

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

于 2012-08-27T15:48:18.090 回答