我有一个 Laravel 5 应用程序,它有两个环境和两个配置:测试(用于 PHPUnit 配置、内存数据库)和本地(我的开发配置)。
即使环境配置为local
,应用程序仅加载配置resources/config/testing
文件夹。我可以从同一个应用程序中看到环境APP_ENV
环境变量,它是local
.
Laravel 5 不再正确级联配置文件,因此您的测试配置文件将覆盖本地配置文件中的任何内容。
现在,您不应该为每个环境都有任何子文件夹,而是在根文件夹中的 .env 文件内设置配置设置。
该文件不会签入存储库,以确保没有任何敏感内容被签入存储库。您的应用程序所在的每个环境都应该有一个单独的 .env 文件。
TESTING
对于 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 文件,无论您在哪里进行此测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)