首页 > 解决方案 > 如何执行作业:在 phpunit 期间调度

问题描述

在我的内部,我phpunit.xml已将其设置QUEUE_DRIVER为 null:

<env name="QUEUE_DRIVER" value="null"/>

不幸的是,作业调度没有被执行。

例如,我有这个虚拟测试:

public function test_dummy()
{
    \App\Jobs\DummyJob::dispatch();
    dd('DummyJob is not executed');
}

这就是工作:

public function handle()
{
    dd('alright');
}

phpunit 返回

DummyJob 未执行

是否可以更改phpunit.xml以便立即执行作业补丁,就像它与排队的邮件一样?

标签: laravelphpunit

解决方案


我不得不从QUEUE_DRIVER更改nullsync

设置QUEUE_DRIVERnull将丢弃所有排队的作业。

设置 QUEUE_DRIVER tosync` 将立即运行排队的作业,因此建议用于测试目的,但不用于生产。


推荐阅读