2

我想运行不具有环境变量,我需要设置一个buildserver测试。如何设置系统变量以用于maven故障安全测试?

该变量由弹簧上下文XML文件中用于解析的属性文件的位置。

例如类路径:配置/ $ {} 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> 

我怎样才能得到我的测试此的环境变量设置,而无需实际将其设置在机器上?

注:与MVN运行此验证-DEnvironmentType = “DevelopmentIntegration” 的作品。我希望它能与mvn验证一起工作。

干杯, 彼得

+0

您是否尝试过更新版本2.12.2原因这个版本是按照文档?此外,您是否通过mvn -X检查了输出... – khmarbaise

+0

PEBKAC ...上面的配置位于父项目中,我没有注意到它正被一个子项目覆盖。我坚持使用2.12作为我的版本。 2.12.2因为不创建故障安全报告目录而中断。 –

+0

谢谢。为了解决这个问题,我不得不搜索很多东西,你的问题回答了我的问题。有关故障安全插件的文档非常稀疏,因此互联网上的许多链接只是给出了一个未找到的页面。 – SK176H

回答

1

所示的配置具有值false<forkMode>,其不似乎是每docs此参数的有效值。

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

+1

我会给你一个答复。 fork模式是错误的,但这不是问题。 (如果配置被使用,它实际上只是爆炸。)我重写了一个子项目中的配置,所以我的设置被忽略。 –