2017-10-22 82 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';

这似乎是我能得到它的工作的唯一途径。

相关问题