2013-07-11 142 views
0

我跟着How to set env variables for maven to run test correctly?和配置我的聚甲醛是這樣的:如何在junit測試用例中設置env變量?

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.15</version> 
    <configuration> 
     <systemPropertyVariables> 
      <SENDGRID_USERNAME>username</SENDGRID_USERNAME> 
      <SENDGRID_PASSWORD>password</SENDGRID_PASSWORD> 
     </systemPropertyVariables> 
    </configuration> 
</plugin> 

當我運行mvn test命令,這是給下面的錯誤,

Error in custom provider, java.lang.IllegalStateException: SENDGRID_PASSWORD env variable must be set. 

我到底做錯了什麼?

我在做研究,以找到答案,我發現了以下工作:ProcessBuilder可以使用一套包膜與它產生的進程。我不知道ProcessBuilder是否對我有幫助,因爲我沒有產生任何進程。我的項目是maven項目,我使用mvn測試命令運行測試。

任何機構可以解釋我如何設置環境對於這樣的情況下(即行家+ junit的)

我能夠設置properties但問題是如何設置environment variable爲我的節目期待的ENV變量。

+0

這看起來好像沒什麼問題。如何檢索env變量,System.getProperty(「SENDGRID_PASSWORD」)?你有檢查嗎? – vikingsteve

+0

當我試圖在@BeforeClass方法來檢索,System.getProperty(「SENDGRID_PASSWORD」)返回'null' – vikas

+0

嗯,這很奇怪,因爲已當你達到一個@BeforeClass方法的系統屬性應該可用。 – vikingsteve

回答