我正在运行laravel phpunit测试用例,数据库连接出现错误。数据库连接成功。但是
“调用成员函数connection()时为null”-无法打开 数据库连接服务器。请更新配置设置。
我正确地做了所有这些事情。查找以下详细信息:
"php" : ">=7.1.3",
"laravel/lumen-framework": "5.8.*",
"phpunit/phpunit" : "^7.0",
"phpunit/php-invoker" : "*",
"phpunit/dbunit" : "^4.0",
答案 0 :(得分:0)
这可能是一个猜测,但没有看到您的phpunit.xml
配置,但是我怀疑您需要指定一个测试连接。
如果您检查php单元文件,则您的php
属性中应具有如下所示的值。
将DB_CONNECTION设置为sqlite
并将DB_DATABASE设置为:memory:
是一种快速而轻量的配置测试数据库的方法。
<php>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="MAIL_DRIVER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
</php>
如果您的phpunit.xml
文件中确实有相似的值,那么您将需要检查config/database.php
文件,并确保与DB_CONNECTION匹配的连接具有合理的配置。
sqlite
的默认值应该可以正常工作,如下所示:
'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
希望这会有所帮助。