从laravel中的测试套件中仅运行一个单元测试

Ima*_*osi 15 php testing phpunit laravel

使用phpunit命令Laravel将在我们的项目中运行所有单元测试.如何运行一个或特定的单元测试Laravel 5.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);
    }    
}
Run Code Online (Sandbox Code Playgroud)

Zay*_*Ali 25

使用此命令从测试套件运行特定测试.

phpunit --filter {TestMethodName}
Run Code Online (Sandbox Code Playgroud)

如果您想更具体地了解您的文件,请将文件路径作为第二个参数传递

phpunit --filter {TestMethodName} {FilePath}
Run Code Online (Sandbox Code Playgroud)

例:

phpunit --filter testExample path/to/filename.php
Run Code Online (Sandbox Code Playgroud)

注意:

如果你有一个名为函数testSave和另一个名为功能testSaveAndDrop,并传递testSave--filter 像这样

phpunit --filter testSave
Run Code Online (Sandbox Code Playgroud)

它也将运行testSaveAndDrop以及任何其他以...开头的功能testSave*

它基本上是一个子串匹配.如果要排除所有其他方法,请使用$字符串结尾标记,如此

phpunit --filter '/testSave$/'
Run Code Online (Sandbox Code Playgroud)


小智 17

php artisan test --filter UserTest
Run Code Online (Sandbox Code Playgroud)


小智 6

您应该运行./vendor/bin/phpunit --help以使用phpunit获得所有选项。您可以使用下面的某些选项运行phpunit来运行特定的方法或类。

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

--testsuite <name,...>      Filter which testsuite to run
Run Code Online (Sandbox Code Playgroud)