phpunit
コマンドを使用すると、Laravelはプロジェクトのすべての単体テストを実行します。Laravel 5.1
で1つまたは特定の単体テストを実行する方法は?
テストスイートからtestFindToken
を実行したいだけです。
<?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);
}
}
このコマンドを使用して、テストスイートから特定のテストを実行します。
phpunit --filter {TestMethodName}
ファイルをより具体的にしたい場合は、ファイルパスを2番目の引数として渡します。
phpunit --filter {TestMethodName} {FilePath}
例:
phpunit --filter testExample path/to/filename.php
注:
testSave
という名前の関数とtestSaveAndDrop
という名前の別の関数があり、testSave
を--filter
に渡す場合
phpunit --filter testSave
testSaveAndDrop
およびtestSave*
で始まるその他の関数も実行されます
基本的には部分文字列の一致です。他のすべてのメソッドを除外する場合は、$
文字列トークンの終わりを次のように使用します
phpunit --filter '/testSave$/'
./vendor/bin/phpunit --help
phpunitですべてのオプションを取得します。そして、以下のオプションを指定してphpunitを実行し、特定のメソッドまたはクラスを実行できます。
--filter <pattern> Filter which tests to run.
--testsuite <name,...> Filter which testsuite to run