web-dev-qa-db-fra.com

Exécutez un seul test unitaire à partir d'une suite de tests dans laravel

L'utilisation de la commande phpunit Laravel exécutera tous les tests unitaires de notre projet. Comment exécuter un ou des tests unitaires spécifiques dans Laravel 5.1?

Je veux juste exécuter testFindToken depuis ma suite de tests.

<?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);
    }    
}
15
Imanuel Pardosi

Utilisez cette commande pour exécuter un test spécifique à partir de votre suite de tests.

phpunit --filter {TestMethodName}

Si vous voulez être plus précis sur votre fichier, passez le chemin du fichier comme deuxième argument

phpunit --filter {TestMethodName} {FilePath}

Exemple:

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

Remarque:

Si vous avez une fonction nommée testSave et une autre fonction nommée testSaveAndDrop et que vous passez testSave au --filter ainsi

phpunit --filter testSave

il exécutera également testSaveAndDrop et toute autre fonction commençant par testSave*

il s'agit essentiellement d'une correspondance de sous-chaîne. Si vous souhaitez exclure toutes les autres méthodes, utilisez $ fin du jeton de chaîne comme ceci

phpunit --filter '/testSave$/'
25
Zayn Ali

Vous devez exécuter ./vendor/bin/phpunit --help pour obtenir toutes les options avec phpunit. Et vous pouvez exécuter phpunit avec une option ci-dessous pour exécuter une méthode ou une classe spécifique.

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

--testsuite <name,...>      Filter which testsuite to run
3
Doan Thai