php - Laravel 5 应用程序始终使用 'testing' 环境配置

标签 php laravel laravel-5 phpunit environment

我有一个 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/

相关文章:

php - 如何在一定数量后停止++$i 自动递增

php - 通过某些路由前缀捕获未找到错误 [Laravel]

javascript - Ajax 执行更新和删除页面不会自动刷新我正在使用 laravel 5.5

reactjs - webpack:SASS 加载器失败 "Module build failed (from ./node_modules/sass-loader/lib/loader.js)"

php - Laravel TestCase 不发送授权 header (JWT token )

php - 自动创建立即购买按钮 Paypal ?

php - 如何确保英镑符号 (£) 正确显示?

jquery - 在 Laravel 中从 AJAX 返回数据

php - 让 pdo_mysql 驱动程序在 CLI 中工作

php - Laravel 5.2 中使用 orWhere 查询范围