【发布时间】:2019-02-24 17:41:37
【问题描述】:
在尝试使用 ModelFactory 填充数据库时,我遇到了这个错误,自过去六个小时以来我一直在查找,似乎无法修复它。
我的测试运行这个:
$books = factory('App\Book', 2)->create();
错误信息是这样的:
There was 1 error:
1) Tests\App\Http\Controllers\BooksControllerTest::testIndexReturnsCollection
Error: Call to a member function connection() on null
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\Model.php:1234
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\Model.php:1200
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\Model.php:1030
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\Model.php:945
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\Model.php:983
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\FactoryBuilder.php:203
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\support\Collection.php:407
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\FactoryBuilder.php:207
D:\Code\Server\htdocs\rlfp.localhost.com\vendor\illuminate\database\Eloquent\FactoryBuilder.php:185
D:\Code\Server\htdocs\rlfp.localhost.com\tests\app\Http\Controllers\BooksControllerTest.php:35
在我的 bootstrap/app.php 上,我在第 26 行和第 28 行,如下所示:
$app->withFacades();
$app->withEloquent();
虽然我的 phpunit.xml 是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap/app.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Application Test Suite">
<directory suffix="Test.php">./tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="DB_DATABASE" value="rlp_rlfpsfactory"/>
</php>
</phpunit>
我需要在 phpunit xml 文件的 php 部分添加其他内容吗?
【问题讨论】:
-
我和这个已经斗争了几天。似乎是 Lumen 5.7 中的一个错误,因为一旦我降级 tp 5.6 它就可以工作了。
-
@ChrisSprague 成功了!我只是删除了我的供应商文件夹,更改了 composer.json 中的流明版本,composer install,然后它就起作用了!非常感谢!
标签: laravel eloquent phpunit lumen