2
在PHPUnit 5.x中,我没有任何问题。一旦我升级到6.2,我开始收到以下错误: Fatal error: Class 'Eloquent' not found in /my/app/Database/Model.php on line 14
我已经执行了composer dump-autoload
。因为它以前工作,我认为这是因为新版本的变化如何设置TestCase.php,但我找不到任何可靠的。PHPUnit 6.2致命错误:未在/.../Database/Model.php中找到类'Eloquent'
在测试本身,我打电话这样
测试设置方法父设置方法:
public function setUp()
{
parent::setUp();
}
TestCase.php:
class TestCase extends Illuminate\Foundation\Testing\TestCase {
protected $baseUrl = 'http://whatever.thing';
public $user;
public $password;
public $mockUser;
public function createApplication() {
//Server address used by the test suite's instance of $_SERVER.
$_SERVER['REMOTE_ADDR'] = isset($_SERVER['REMOTE_ADDR'])? $_SERVER['REMOTE_ADDR']:'127.0.0.1';
$app = require __DIR__.'/../bootstrap/app.php';
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
return $app;
}
}
听起来也许是公平的,所以只是问:不Laravel提供一个基础测试用例是什么?我不知道Laravel有什么共同之处,但是您可以重新使用base-testcase或框架Trait(?)来实现这一点? – hakre
这个答案实际上是复制了Laravel在实例化一个新项目时设置了基本测试类的方式。但是,如果您使用的是旧版本的Laravel并升级到较新的版本,则有可能需要返回并模仿它们的操作方式。我认为我真正的问题是Laravel的新版本加上新的PHPUnit在我的应用程序中发现了以前不是问题的其他问题。 –