LoginSignup
1
2

More than 5 years have passed since last update.

laravelのユニットテストを行う際にSeederが見つからないと言われた場合[訂正]

Last updated at Posted at 2016-07-07

個人メモレベルです

症状

TestCaseクラスの中から,

$this->seed('HogeSeeder')

とSeederを呼び出すと

ReflectionException: Class HogeSeeder does not exist

というエラーが返される

訂正

下記の対応にて, 「composer.jsonを編集して~」と書かれておりますが
この部分は不要でした.
このSeederが見つからないという現象の原因は, 手動でSeederファイルを作成した場合
オートロード設定ファイル(/vendor/composer以下のファイル群のことだと思う)が更新されないため
ファイルをロードすることができないことのようです.
この場合は, コマンドラインからcomposer dumpとしてオートロード設定ファイルを再生成してやれば問題は解決します.

$ php artisan make:seeder

とartisanコマンドを使ってSeederを作った場合、自動的にオートロード設定ファイルも更新されるので
この作業は必要ありません.

対応

    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]

となっている部分を

    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php",
            "database"
        ]

に変更.
composer dumpを実行後, 再度テストを行えば, 少なくともエラーの内容は変わるはず

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2