运行laravel phpunit测试用例时,在Model.php 1249行中出现错误“在空函数上调用成员函数connection()”

时间:2019-04-29 06:38:35

标签: laravel testing phpunit lumen

我正在运行laravel phpunit测试用例,数据库连接出现错误。数据库连接成功。但是

  

“调用成员函数connection()时为null”-无法打开   数据库连接服务器。请更新配置设置。

我正确地做了所有这些事情。查找以下详细信息:

"php" : ">=7.1.3",
"laravel/lumen-framework": "5.8.*",
"phpunit/phpunit" : "^7.0",
"phpunit/php-invoker" : "*",
"phpunit/dbunit" : "^4.0",

1 个答案:

答案 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),
    ],

希望这会有所帮助。