【Laravel】特定のテストケースを実行する
こんにちは。今回はLaravelのTest機能でテストクラスや、テストメソッドを指定して実行する方法を解説します。artisan testコマンドはデフォルトですべてのテストメソッドを実行するので、個別で実行する方法は覚えておく必要があります。
テストケースの作り方については以下の記事で解説していますので参考にしてください。【Laravel】5分でユニットテスト実行環境を作成する Unit Test
前提条件
以下のテストクラスが作成されていることを前提とします。
Tests/
Unit/
ExampleTest.php
example1(method )
example2(method )
SampleTest.php
sample1(method)
sample2(method)
Sample2Test.php
sample3(method)
特定のクラスやテストケースを実行する方法
特定のテストクラスやテストメソッドを指定して実行する方法を説明します。
テストクラスを実行する
引数にファイルパスを指定して実行します。
$ php artisan test tests/Unit/SampleTest.php
PASS Tests\Unit\SampleTest
✓ sample1
✓ sample2
Tests: 2 passed
Time: 0.07s
テストメソッドを実行する
–filterオプションを追加することで、テストクラス内の特定のメソッドを抽出して実行することができます。
$ php artisan test --filter sample1 tests/Unit/SampleTest.php
PASS Tests\Unit\SampleTest
✓ sample1
Tests: 1 passed
Time: 0.05s
テストクラスを検索して一括で実行する
次に条件を指定して絞り込んだテスト群を一括で実行する方法を紹介します。
–filterオプションでテストクラスを検索することができます。先程は同じfilterオプションでテストメソッドを検索していました。引数にテストクラスを指定しない場合は、テストクラスを検索することができます。
$ php artisan test --filter Sample
PASS Tests\Unit\Sample2Test
✓ sample3
PASS Tests\Unit\SampleTest
✓ sample1
✓ sample2
Tests: 3 passed
Time: 0.10s
特定のグループを指定して実行する
テストメソッドにグループを指定し、実行時に特定のグループのみ指定して実行することができます。グループに所属させるにはテストメソッドにたいして@groupアノテーションを付与します。
/**
* @group one
*/
public function test_sample1()
{
$this->assertTrue(true);
}
example1, sample1メソッドをグループone, example2, sample2メソッドをグループtwoに設定しました。グループoneのみ実行するには–groupオプションをつけてartisan testを実行します。
$ php artisan test --group one
PASS Tests\Unit\ExampleTest
✓ example1
PASS Tests\Unit\SampleTest
✓ sample1
Tests: 2 passed
Time: 0.07s
まとめ
Laravelのテストを個別に実行する方法を解説しました。検索機能もあるので、比較的柔軟に実行することができそうです。テストクラスやテストメソッドはまとめて実行しやすいように、しっかり方針を定めて決めることが大事だと思いました。
ディスカッション
コメント一覧
まだ、コメントがありません