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在我的應用程序中發現了以前不是問題的其他問題。 –