使用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);
}
}
答案 0 :(得分:24)
使用此命令从测试套件中运行特定测试。
phpunit --filter {TestMethodName}
如果您想更具体地了解您的文件,请将文件路径作为第二个参数传递
phpunit --filter {TestMethodName} {FilePath}
示例:
phpunit --filter testExample path/to/filename.php
注意:
如果您有一个名为testSave
的函数和另一个名为testSaveAndDrop
的函数,并且您将testSave
传递给--filter
像这样
phpunit --filter testSave
它还会运行testSaveAndDrop
以及以testSave*
它基本上是一个子串匹配。如果要排除所有其他方法,请使用$
字符串结尾标记,如此
phpunit --filter '/testSave$/'
答案 1 :(得分:3)
您应该运行./vendor/bin/phpunit --help
以获取phpunit的所有选项。你可以使用下面的一些选项运行phpunit来运行特定的方法或类。
--filter <pattern> Filter which tests to run.
--testsuite <name,...> Filter which testsuite to run
答案 2 :(得分:2)
对于Windows环境,这对我有效:
在控制台中:
vendor\bin\phpunit --filter login_return_200_if_credentials_are_fine tests/Unit/Http/Controllers/AuthControllerTest.php
在哪里
login_return_200_if_credentials_are_fine-您的测试方法 tests / Unit / Http / Controllers / AuthControllerTest.php-定义测试方法的路径