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);
}
}
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$/'
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