运行 在测试期间在后台阻止 artisan 调用 - Laravel

run blocking artisan call in the background during tests - Laravel

我正在编写需要与队列交互的测试,用例如下所示;

public function testTryLogJobIsAsync()
{
    // dispatch a job here

    Artisan::call("queue:work");

    // assert if job performed required task e.g check if a file is written to

}

作业已处理,但问题是 Artisan::call("queue:work"); 阻止了其余的执行。

有没有办法在后台运行它或者运行它几秒钟然后停止它以便也可以执行以下语句?

我在测试期间选择了启动和停止 artisan 命令的选项,并且 Windows OS 我通过以下方式实现了它; 变化自

Artisan::call("queue:work");

exec('"%PROGRAMFILES%\Git\bin\bash.exe" --login -i -c "timeout 5 php artisan queue:work"');