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();