テストのフィルタリング

./vendor/bin/pest を実行すると、Pest はデフォルトですべてのテストスイートを実行します。ご想像のとおり、個々のテストを実行するには、最初の引数としてテスト名を渡します。

1./vendor/bin/pest tests/Unit/TestExample.php

この章では、Pest によって実行されるテストをフィルタリングするさらに多くの方法について説明します。完全な CLI API リファレンスについては、CLI API リファレンスを参照してください。

--bail

--bail オプションは、最初の失敗またはエラーが発生したときにテストスイートの実行を停止するように Pest に指示します。

1./vendor/bin/pest --bail

--dirty

--dirty オプションは、Git によるとコミットされていない変更があるテストのみを実行するように Pest に指示します。これは、新しい機能のテストセットを開発していて、Pest が呼び出されるたびにテストスイート全体を実行したくない場合に便利です。

1./vendor/bin/pest --dirty

Pest の制限により、PHPUnit 構文を使用して記述されたテストケースは常にダーティと見なされることに注意してください。

--filter

--filter オプションを使用すると、指定された正規表現パターンに一致するテストを実行できます。--filter オプションを使用すると、ファイル名、テストの説明、データセットのパラメーターなど、テストの出力の説明に通常表示される情報に基づいてテストをフィルタリングできます。

1./vendor/bin/pest --filter "test description"

--group

--group オプションを使用すると、特定のグループに属するテストを選択的に実行できます。テストまたはフォルダをグループに割り当てる方法については、テストのグループ化のドキュメントを参照してください。

1./vendor/bin/pest --group=integration,browser

--exclude-group

--exclude-group オプションは、実行から特定のテストグループを除外するために使用できます。

1./vendor/bin/pest --exclude-group=integration,browser

--retry

以前に失敗したテストがある場合、通常は、失敗したテストを最初に実行するようにテストスイートを配置して並べ替えたいと考えます。このような場合は、--retry オプションを使用できます。

--retry フラグは、以前に失敗したテストを優先して、テストスイートを並べ替えます。過去に失敗がなかった場合は、スイートは通常どおりに実行されます。ただし、過去に失敗があった場合は、それらのテストが最初に実行されます。

注:phpunit.xml ファイルに 2 つのテストスイート(通常はユニットと機能)がある場合、このオプションは、最初に失敗したテストを実行することで各スイートを並べ替えることに注意してください。つまり、以前に失敗したテストが優先される場合、Pest が機能テストスイートを実行する前に、ユニットテストスイート全体が実行されることがあります。

1./vendor/bin/pest --retry

only()

テストスイートで特定のテストを実行する場合は、only() メソッドを使用できます。

1test('sum', function () {
2 $result = sum(1, 2);
3 
4 expect($result)->toBe(3);
5})->only();

コードベースが大きくなるにつれて、フィルタリングを使用して手動でテストを実行するのが面倒になることがあります。そこで、テストのスキップが登場します。テストのスキップは、開発者がテストスイートから特定のテストを完全に削除せずに一時的に除外できる便利な機能です:テストのスキップ →