Laravel使用PHPUnit进行测试

3

在使用phpunit测试Laravel应用程序时,如何确保例如测试我的api路由/test/1时使用我的测试数据库呢?

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

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

但是当我发出一个POST请求时,我会从开发数据库中接收到数据吗?


你是否在 config/database.php 中设置了配置值数组? - Dov Benyomin Sohacheski
2个回答

0
在你的测试文件中添加以下内容,以输出当前DB_CONNECTIONdd(env('DB_CONNECTION')); 如果PHPUnit.xml正确设置,你应该在测试输出中得到mysql_testing

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接