【问题标题】:Laravel testing with phpunit使用 phpunit 进行 Laravel 测试
【发布时间】:2016-06-04 21:39:20
【问题描述】:

我如何确保当我在 Laravel 中使用 phpunit 进行测试时,例如我想测试我的 api 路由 /test/1 它使用我的测试数据库?

我已经建立了测试连接并更改了我的 phpunit.xml 文件。我将DB_CONNECTION 更改为我创建的测试连接。

<env name="DB_CONNECTION" value="mysql_testing"/>

但是当我发出发布请求时,我会从开发数据库中收到数据?

【问题讨论】:

  • 您是否还在 config/database.php 中设置了配置值数组?

标签: php unit-testing laravel testing phpunit


【解决方案1】:

在您的Config/database.php 文件中,mysql_testing 中的数据库的值是多少?应该是这样的:

'mysql_testing' => [ 
    'driver' => 'mysql',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('TEST_DB_DATABASE', 'db_testing'),
    'username' => env('DB_USERNAME', 'root'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',
    'strict' => false,
    'engine' => null,
],

并且数据库db_testing必须存在。

【讨论】:

  • 不要使用html
    来格式化使用代码块(只是意图代码有4个空格...)
【解决方案2】:

在您的一个测试文件中,添加以下内容以输出您当前的DB_CONNECTION

dd(env('DB_CONNECTION'));

如果 PHPUnit.xml 设置正确,您应该在测试输出中获得 mysql_testing

【讨论】:

    猜你喜欢
    • 2015-09-01
    • 2015-08-25
    • 2015-03-03
    • 2013-09-13
    • 2011-10-10
    • 2019-03-06
    • 2020-05-02
    • 2017-03-13
    • 2014-09-28
    相关资源
    最近更新 更多