运行 laravel phpunit testcase 时,我在 Model.php 行 1249 中收到错误 "Call to a member function connection() on null"
While running laravel phpunit testcase , i'm getting an error "Call to a member function connection() on null" in Model.php line 1249
我是 运行 laravel phpunit 测试用例,数据库连接出错。数据库连接成功。但是,
"Call to a member function connection() on null" - Could not open to
database connection server. Please update the configuration settings.
这些事情我都做得很好。查找以下详细信息:
"php" : ">=7.1.3",
"laravel/lumen-framework": "5.8.*",
"phpunit/phpunit" : "^7.0",
"phpunit/php-invoker" : "*",
"phpunit/dbunit" : "^4.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),
],
希望对您有所帮助。
我是 运行 laravel phpunit 测试用例,数据库连接出错。数据库连接成功。但是,
"Call to a member function connection() on null" - Could not open to database connection server. Please update the configuration settings.
这些事情我都做得很好。查找以下详细信息:
"php" : ">=7.1.3",
"laravel/lumen-framework": "5.8.*",
"phpunit/phpunit" : "^7.0",
"phpunit/php-invoker" : "*",
"phpunit/dbunit" : "^4.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),
],
希望对您有所帮助。