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模式是錯誤的,但這不是問題。 (如果配置被使用,它實際上只是爆炸。)我重寫了一個子項目中的配置,所以我的設置被忽略。 –