我有一个 Laravel 5 应用程序,它有两个环境和两个配置:测试(用于 PHPUnit 配置、内存数据库)和本地(我的开发配置)。
即使环境配置为本地
,应用程序也只会加载resources/config/testing
文件夹中的配置。我可以从 APP_ENV
环境变量中看到同一个应用程序中的环境,它是本地
。
我是否应该不使用测试配置目录来配置我的测试?
在 Laravel 5 中配置测试环境的更好方法是什么?
最佳答案
Laravel 5 不再正确级联配置文件,因此您的测试配置文件将覆盖本地配置文件中的任何内容。
现在您不应该为每个环境都有任何子文件夹,而是在根文件夹中的 .env 文件内设置配置设置。
此文件不会 checkin 存储库,以确保不会将任何敏感内容 checkin 存储库。您的应用程序所在的每个环境都应该有一个单独的 .env 文件。
测试
对于 php 单元(功能),您可以在 phpunit.xml 文件中设置环境变量,例如......
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
</php>
对于 Behat(接受)测试,Laracasts Laravel Behat 扩展允许您创建一个 .env.behat 文件来更改环境变量。
对于 phpspec(单元)测试来说,环境并不重要,因为您单独测试单个方法并模拟其他所有内容。
对于 selenium(集成/系统/e2e)测试,环境变量应来自服务器上的 .env 文件,无论您在何处进行此测试。
关于php - Laravel 5 应用程序始终使用 'testing' 环境配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438817/