PHP 工匠从 /database/seeds 中的新文件夹运行播种机
Posted
技术标签:
【中文标题】PHP 工匠从 /database/seeds 中的新文件夹运行播种机【英文标题】:PHP artisan run seeder from new folder in /database/seeds 【发布时间】:2020-01-21 13:26:51 【问题描述】:我在 (/database/seeds/) 中创建了一个新文件夹,所以现在我在这样的目录 (/database/seeds/DatabaseTester/Users.php) 中有一个播种机,我想在我的测试中运行它。如何在测试中使用代码运行播种机?
php artisan db:seed --class=
不适合我,也许我做错了,我很困惑。
更新:
【问题讨论】:
更正了糟糕的图片网址格式。 【参考方案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\
。
【讨论】:
以上是关于PHP 工匠从 /database/seeds 中的新文件夹运行播种机的主要内容,如果未能解决你的问题,请参考以下文章
新鲜的 Laravel 安装删除了工匠服务上的 server.php