【问题标题】:How to manually run items from the Jobs table in Laravel (for testing)如何在 Laravel 中手动运行 Jobs 表中的项目(用于测试)
【发布时间】:2019-12-20 02:42:56
【问题描述】:

我正在尝试测试某些数据是否填充在由作业完成的页面上。在我的测试环境中,队列没有运行。

有没有办法从控制器中的函数手动运行作业?我通过执行以下操作从我的数据库中检索了所有作业:

$allJobs = Jobs::all();

foreach ($allJobs as $job) {
     // $job->handle(); ????
}

我想要的是迭代每个作业并自己处理它们。我的测试套件可以等待这些作业被处理。我似乎找不到任何关于此的文档。谢谢!

【问题讨论】:

    标签: laravel laravel-5.8 laravel-queue laravel-jobs


    【解决方案1】:

    如果目标是能够为您的工作编写测试,那相当简单:

    public function testJobsEvents()
    {
           $job = new \App\Jobs\YourJob;
           $job->handle();
    
           // Assert the side effect of your job...
    }
    

    【讨论】:

      猜你喜欢
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      相关资源
      最近更新 更多