当我使用 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
。