Ejecute solo una prueba de unidad desde un conjunto de pruebas en laravel

2 minutos de lectura

Avatar de usuario de Imanuel Pardosi
Imanuel Pardosi

Usando phpunit comando Laravel ejecutará todas las pruebas unitarias en nuestro proyecto. Cómo ejecutar una o pruebas unitarias específicas en Laravel 5.1?

solo quiero correr testFindToken de mi suite de pruebas.

<?php

use Mockery as m;
use App\Models\AccessToken;
use Illuminate\Foundation\Testing\WithoutMiddleware;

class AccessTokenRepositoryTest extends TestCase
{
    use WithoutMiddleware;

    public function setUp()
    {
        parent::setUp();

        $this->accessToken = factory(AccessToken::class);
        $this->repo_AccessToken = app()->make('App\Repositories\AccessTokenRepository');
    }

    public function testFindToken()
    {
        $model = $this->accessToken->make();
        $model->save();
        $model_accessToken = $this->repo_AccessToken->findToken($model->id);
        $this->assertInstanceOf(Illuminate\Database\Eloquent\Model::class, $model);
        $this->assertNotNull(true, $model_accessToken);
    }    
}

Avatar de usuario de Zayn Ali
Zayn Alí

Utilice este comando para ejecutar una prueba específica desde su conjunto de pruebas.

phpunit --filter {TestMethodName}

Si desea ser más específico acerca de su archivo, pase la ruta del archivo como segundo argumento

phpunit --filter {TestMethodName} {FilePath}

Ejemplo:

phpunit --filter testExample path/to/filename.php

Nota:

Si tienes una función llamada testSave y otra función llamada testSaveAndDrop y pasas testSave hacia --filter
al igual que

phpunit --filter testSave

también se ejecutará testSaveAndDrop y cualquier otra función que comience con testSave*

es básicamente una coincidencia de subcadena. Si desea excluir todos los demás métodos, utilice $ token de fin de cadena así

phpunit --filter '/testSave$/'

  • ¡Excelente! Gracias Zayn 🙂

    –Imanuel Pardosi

    8 de agosto de 2016 a las 5:18

  • Bien explicado. Pero para laravel, si el comando phpunit no está configurado con su proyecto, tendrá que usar ./vendor/bin/phpunit en cambio.

    – Salman Shahid

    21 de febrero de 2020 a las 11:01


Avatar de usuario de Doan Thai
Doan tailandés

Deberías correr ./vendor/bin/phpunit --help para obtener todas las opciones con phpunit. Y puede ejecutar phpunit con alguna opción a continuación para ejecutar un método o clase específicos.

--filter <pattern>          Filter which tests to run.

--testsuite <name,...>      Filter which testsuite to run

  • Gracias @Ken Pi, exactamente lo que estaba buscando

    – Shaz

    25 de diciembre de 2018 a las 7:14

php artisan test --filter UserTest

Para el entorno de Windows, esto funciona para mí:

en consola:

vendor\bin\phpunit --filter login_return_200_if_credentials_are_fine tests/Unit/Http/Controllers/AuthControllerTest.php

DÓNDE

login_return_200_if_credentials_are_fine – su método de prueba tests/Unit/Http/Controllers/AuthControllerTest.php – ruta donde se definió el método de prueba

Tarde a la fiesta, pero podría ayudar a alguien.

Para probar un archivo de prueba específico

prueba artesanal de php –filter AccessTokenRepositoryTest

Para probar el caso específico de ese archivo

prueba artesanal de php –filter AccessTokenRepositoryTest::testFindToken

¿Ha sido útil esta solución?