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致命的なエラー:クラス「Eloquent」が/.../Database/Model.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には何が共通しているのか分かりませんが、ベーステストケースやフレームワークTrait(?)を再利用すればいいのですか? – hakre
この回答は実際には、新しくプロジェクトをインスタンス化するときに、Laravelの基本テストクラスの設定方法をコピーしています。しかし、Laravelの古いバージョンを使用していて、新しいバージョンにアップグレードした場合、元に戻ってその動作を模倣する必要があります。私の本当の問題は、新バージョンのLaravelと新しいPHPUnitを組み合わせることで、以前は問題ではなかったアプリ内の他の問題が見つかりました。 –