Laravel 5 console (artisan) command unit tests Laravel 5 console (artisan) command unit tests laravel laravel

Laravel 5 console (artisan) command unit tests


I have done this before as follows - my console command returns a json response:

public function getConsoleResponse(){    $kernel = $this->app->make(Illuminate\Contracts\Console\Kernel::class);    $status = $kernel->handle(        $input = new Symfony\Component\Console\Input\ArrayInput([            'command' => 'test:command', // put your command name here        ]),        $output = new Symfony\Component\Console\Output\BufferedOutput    );    return json_decode($output->fetch(), true);}

So if you want to put this in it's own command tester class, or as a function within TestCase etc... up to you.


use Illuminate\Support\Facades\Artisan;use Symfony\Component\Console\Output\BufferedOutput;$output = new BufferedOutput();Artisan::call('passport:client', [    '--password' => true,    '--name' => 'Temp Client',    '--no-interaction' => true,], $output);$stringOutput = $output->fetch();