运行 laravel 中的测试套件中只有一个单元测试
Run only one unit test from a test suite in 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);
}
}
使用此命令运行 测试套件中的特定测试。
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$/'
您应该 运行 ./vendor/bin/phpunit --help
获取 phpunit 的所有选项。您可以 运行 phpunit 使用下面的一些选项 运行 特定方法或 class.
--filter <pattern> Filter which tests to run.
--testsuite <name,...> Filter which testsuite to run
对于 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 - 定义测试方法的路径
php artisan test --filter UserTest
使用 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);
}
}
使用此命令运行 测试套件中的特定测试。
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$/'
您应该 运行 ./vendor/bin/phpunit --help
获取 phpunit 的所有选项。您可以 运行 phpunit 使用下面的一些选项 运行 特定方法或 class.
--filter <pattern> Filter which tests to run.
--testsuite <name,...> Filter which testsuite to run
对于 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 - 定义测试方法的路径
php artisan test --filter UserTest