He creado una prueba de comando de consola realmente básica siguiendo los docs:
<?php
namespace Tests\Feature;
use PHPUnit\Framework\TestCase;
class QueueJobCommandTest extends TestCase
{
/**
* Test a job argument is requied
*
* @return void
*/
public function testNoArgumentsIsError()
{
$this->artisan('queue:job')
->expectsOutput('No job specified')
->assertExitCode(0);
}
}
Pero cuando ejecuto phpunit me sale el error:
Error: Call to undefined method Tests\Feature\QueueJobCommandTest::artisan()
Cualquier ayuda sobre por qué {{X 0}} no está definida será muy apreciada.
2 respuestas
Extienda la versión Laravel de TestCase
use Tests\TestCase;
Espero que esto ayude
Debe extender TestCase desde Laravel, que incluye todas las funciones de Laravel. La documentación es realmente buena en ese punto.
https://laravel.com/docs/5.8/testing
<?php
namespace Tests\Unit;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
$this->assertTrue(true);
}
}
Eso debería resolver tu problema. A veces hago una clase donde puedo agregar algunas funciones especiales para la autenticación, por ejemplo, y extender desde esa clase que se extiende desde la clase Laravel TestCase. Luego puede agregar sus funciones personalizadas en esa clase.
Preguntas relacionadas
Nuevas preguntas
php
PHP es un lenguaje de secuencias de comandos interpretado, dinámico, orientado a objetos y ampliamente utilizado, diseñado principalmente para el desarrollo web del lado del servidor. Se utiliza para preguntas sobre el lenguaje PHP.