web-dev-qa-db-ja.com

laravelのテストスイートからユニットテストを1つだけ実行します

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

このコマンドを使用して、テストスイートから特定のテストを実行します。

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$/'
25
Zayn Ali

./vendor/bin/phpunit --help phpunitですべてのオプションを取得します。そして、以下のオプションを指定してphpunitを実行し、特定のメソッドまたはクラスを実行できます。

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

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