- テストスイートを使用したフィルタリング:
Laravelでは、
phpunit.xml
ファイルでテストスイートを定義することができます。各スイートには条件を指定し、その条件に基づいてテストをフィルタリングすることができます。例えば、以下のようにテストスイートを定義することができます。
<testsuites>
<testsuite name="Feature">
<directory>./tests/Feature</directory>
<filter>
<whitelist>
<directory suffix="Test.php">./tests/Feature</directory>
<file>./tests/Feature/SomeTest.php</file>
</whitelist>
</filter>
</testsuite>
</testsuites>
上記の例では、"Feature"という名前のテストスイートを定義し、./tests/Feature
ディレクトリ内のテストクラスと、./tests/Feature/SomeTest.php
ファイルをホワイトリストに指定しています。これにより、指定した条件に合致するテストだけが実行されます。
- アノテーションを使用したフィルタリング:
テストクラスやテストメソッドにアノテーションを使用して、特定の条件に基づいてテストをフィルタリングすることもできます。例えば、
@group
アノテーションを使用することで、グループ名に基づいてテストをフィルタリングできます。以下に例を示します。
/
* @group expensive
*/
class SomeTest extends TestCase
{
// テストメソッド
}
上記の例では、@group
アノテーションを使用して、"expensive"というグループにテストを属させています。テストを実行する際に、--group
オプションを使用して特定のグループのテストのみを実行することができます。
- テストケースの命名規則を使用したフィルタリング:
テストケースの命名規則を使用して、特定の条件にマッチするテストだけを実行することもできます。例えば、
SomeTest.php
という名前のテストケースだけを実行したい場合は、以下のコマンドを使用します。
php artisan test --filter SomeTest
上記のコマンドを実行すると、SomeTest
という名前のテストケースだけが実行されます。
以上が、Laravelにおけるテストフィルタリングの方法といくつかのコード例です。これらの手法を使用することで、特定の条件に合致するテストだけを実行し、効率的なテストスイートを作成することができます。