首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 5应用程序总是使用“测试”环境配置

Laravel 5应用程序总是使用“测试”环境配置
EN

Stack Overflow用户
提问于 2014-12-12 07:28:39
回答 3查看 7.3K关注 0票数 13

我有一个Laravel 5应用程序,有两个环境和两个配置:测试(用于PHPUnit配置,内存中的db)和本地(我的开发配置)。

即使将环境配置为local,应用程序也只加载resources/config/testing文件夹中的配置。我可以从APP_ENV环境变量中看到同一个应用程序中的环境,它是local

  • 我应该不使用测试配置目录来配置测试吗?
  • 在Laravel 5中配置我的测试环境的更好方法是什么?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-16 14:49:34

Laravel 5不再正确地级联配置文件,因此您的测试配置文件正在覆盖本地配置文件中的任何内容。

现在,您不应该为每个环境设置任何子文件夹,而是在根文件夹中的.env文件中设置配置设置。

此文件不签入回购,以确保没有任何敏感的签入回购。对于应用程序所处的每个环境,您都应该有一个单独的.env文件。

测试

对于php单元(功能),可以在phpunit.xml文件中设置env变量。

代码语言:javascript
运行
复制
<php>
    <env name="APP_ENV" value="testing"/>
    <env name="CACHE_DRIVER" value="array"/>
    <env name="SESSION_DRIVER" value="array"/>
</php>

对于behat (接受)测试,扩展允许您创建一个.env.behat文件来更改环境变量。

对于phpspec (单元)测试良好,环境应该无关紧要,因为您单独地测试单个方法,并模拟其他一切。

对于selenium (integration / system / e2e)测试,环境变量应该来自服务器上的.env文件,无论您在哪里进行测试。

票数 28
EN

Stack Overflow用户

发布于 2015-02-24 12:52:41

我只需要使用额外的点来让测试在sqlite上运行,而主应用程序通常默认为mysql:

将类似的内容添加到phpunit.xml中,正如craig.michael.morris所解释的:

代码语言:javascript
运行
复制
<env name="DB_DRIVER" value="sqlite"/>

以及对config/database.php的更改

代码语言:javascript
运行
复制
'default' => env('DB_DRIVER', 'mysql'),

以及config/database.php中的sqlite部分。

代码语言:javascript
运行
复制
'database' => ':memory:',
票数 17
EN

Stack Overflow用户

发布于 2016-02-11 10:30:07

1)打开配置文件database.php并在'connections' => [中添加以下内容

代码语言:javascript
运行
复制
'sqlite_testing' => [
    'driver'   => 'sqlite',
    'database' => ':memory:',
    'prefix'   => '',
],

这个在内存中的sqlite将用于您的测试

2)打开.env文件并确保它具有以下内容:

代码语言:javascript
运行
复制
DB_CONNECTION=mysql

3)打开phpunit.xml并在<php>标记中添加以下内容:

代码语言:javascript
运行
复制
<env name="DB_CONNECTION" value="sqlite_testing"/>

这里可以添加所有与测试相关的env变量

4)在测试中,您是否使用了数据库连接,使用数据库迁移特性:

代码语言:javascript
运行
复制
use DatabaseMigrations;

有关DatabaseMigrations的更多详细信息,请参阅文档https://laravel.com/docs/5.1/testing#resetting-the-database-after-each-test

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27438817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档