Laravel testing with phpunit


Laravel testing with phpunit

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

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

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

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

在您的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必须存在。

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

dd(env('DB_CONNECTION'));

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