【问题标题】:PHP artisan run seeder from new folder in /database/seedsPHP 工匠从 /database/seeds 中的新文件夹运行播种机
【发布时间】:2020-01-21 13:26:51
【问题描述】:

我在 (/database/seeds/) 中创建了一个新文件夹,所以现在我在这样的目录 (/database/seeds/DatabaseTester/Users.php) 中有一个播种机,我想在我的测试中运行它。如何在测试中使用代码运行播种机?

php artisan db:seed --class= 不适合我,也许我做错了,我很困惑。

更新:

【问题讨论】:

  • 更正了糟糕的图片网址格式。

标签: php laravel console laravel-artisan


【解决方案1】:

如果你能提供你得到的错误可能会有所帮助,但看起来你正在使用 :: 而不是单个 :

试试

php artisan db:seed --class=Users

【讨论】:

  • Class Users does not exist
【解决方案2】:

我看到你更新了你的问题。因此,考虑到这一点,我建议您运行composer dump-autoload,然后再试一次。

但是,我不得不问你。为什么你在测试中使用种子,而不是使用虚假数据对工厂进行建模?

【讨论】:

  • 对不起,这只是问题,我一直在尝试db::seed
  • @DmitriyDembitskyi 我已经更新了我的答案,请检查它现在是否对你有用。
  • 我用播种机多次使用用户。我正在用黄昏创建自动化测试,所以这就是原因。
【解决方案3】:

这就是它的工作原理:

添加 namespace Seeder\DatabaseTester; 到您的播种机

添加 use Illuminate\Support\Facades\Artisan; 在测试的顶部

用来运行 Artisan::call('db:seed', ['--class' => 'Seeder\DatabaseTester\Users']);

这个适用于任何文件夹,只是不要忘记在播种器路径之前添加Seeder\

【讨论】:

    猜你喜欢
    • 2014-12-19
    • 2014-05-04
    • 2019-12-23
    • 2016-04-10
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    相关资源
    最近更新 更多