2017-10-22 116 views
0

我正在爲調用app()->environment()的函數編寫單元測試。 phpunit.xml文件將環境設置爲testing。我也想在其他環境中測試該功能。應用程序() - >環境()不使用由config()設置的值

我已經試過:

  • config('app.env', 'prod')
  • config('env', 'prod')
  • $_ENV['app.env'] = 'prod'
  • $_ENV['env'] = 'prod'

我還包括管絃樂/測試平臺封裝,使用這樣的:

protected function getEnvironmentSetUp($app) 
{ 
    //Both of the following 
    $app['config']->set('app.env', 'prod'); 
    $app['config']->set('env', 'prod'); 
} 

這些都沒有改變app()->environment()的輸出。

我錯過了什麼嗎?

+0

您已經指定了Laravel和Lumen。你使用哪一個,哪個版本?他們在內部工作方式不同這聽起來像是一個較舊的Laravel安裝或緩存配置。 – sisve

+0

@sisve它是Lumen 5.5應用程序的一個包。我從軟件包目錄中運行測試。 orchestral/testbench是讓我執行'app() - > environment()'的工具。我不確定哪些配置可以被緩存。 – Ethan22

回答

0

我最終通過查看->environment()命令的代碼來弄清楚這一點。它採用$this['env']的比較所以在我的測試中,我寫道:

app()['env'] = 'prod';

這似乎是我能得到它的工作的唯一途徑。

相關問題