es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El comando Artisan de Laravel en el controlador ignora las opciones adicionales.

Estoy tratando de ejecutar un comando Artisan desde un controlador con opciones para ejecutar en paralelo o probar una sola clase de prueba:

$this->call('test', [
    '--parallel',
    '--filter' => 'FooTest',
]);

Pero simplemente ignora cualquier opción. Si ejecuto php artisan test --filter=FooTest o php artisan test --parallel en la línea de comandos, funciona perfectamente.

He intentado usar Artisan::call( ... ), poner el array en una variable, usar array() en lugar de [], pero nada parece funcionar.

Sin embargo, cuando ejecuto un seeder con opciones, funciona perfectamente:

$this->call('db:seed', ['--class' => 'EssentialDatabaseSeeder']);
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Se recomienda utilizar la fachada Artisan para ejecutar un comando Artisan desde un controlador. Aquí tienes un ejemplo de código que debería funcionar para ejecutar el comando test con opciones:

    use Illuminate\Support\Facades\Artisan;
    
    ...
    
    public function myControllerMethod()
    {
        Artisan::call('test', [
            '--parallel' => true, // o false, dependiendo de tus necesidades
            '--filter' => 'FooTest',
        ]);
    }
    

    Utilizar --parallel y --filter como claves en el arreglo de opciones debería pasar estas opciones al comando Artisan. Si esto aún no funciona, es posible que haya un problema con la versión o configuración de Laravel. En ese caso, puede ser útil buscar más ayuda en la comunidad o documentación de Laravel.

Comments are closed.