Edited at

PHPUnit で指定したのテストのみを実行する

More than 5 years have passed since last update.

一つのテストケースの中で特定のテストだけを実行したい場合 filter や group オプションを使うことで、特定のテストだけを実行できる。


テストケース

以下のテストケースがあるとする。


SampleTest.php

<?php

require_once 'PHPUnit/Autoload.php';

class SampleTest extends PHPUnit_Framework_TestCase
{
/**
* @group hoge
*/

public function testFoo001() {
$this->assertTrue(true);
}

/**
* @group fuga
*/

public function testFoo002() {
$this->assertTrue(true);
}

/**
* @group hoge
*/

public function testBar001() {
$this->assertTrue(true);
}

/**
* @test
* @group fuga
*/

public function あいうえお() {
$this->assertTrue(true);
}
}



filter オプション

filterオプションで指定したパターンにマッチするテスト名を持つテストが実行される。

% phpunit --testdox --filter="Foo" SampleTest.php

PHPUnit 3.6.8 by Sebastian Bergmann.

Sample
[x] Foo 001
[x] Foo 002

テスト名がマルチバイト文字の場合は、パターンを "/" 等で囲む必要あり。囲まないと preg_match() でエラーが発生する。

% phpunit --testdox --filter="あいう" SampleTest.php  

PHPUnit 3.6.8 by Sebastian Bergmann.

PHP Warning: preg_match(): Unknown modifier '?' in /usr/share/php/PHPUnit/Framework/TestSuite.php on line 718

囲めばOk。

% phpunit --testdox --filter="/あいう/" SampleTest.php

PHPUnit 3.6.8 by Sebastian Bergmann.

Sample
[x] あいうえお


group オプション

group オプションで指定したグループに属するテストが実行される。グループは @group アノテーションで設定する。あらかじめコードに書いておく必要ある。

% phpunit --testdox --group="fuga" SampleTest.php

PHPUnit 3.6.8 by Sebastian Bergmann.

Sample
[x] Foo 002
[x] あいうえお


参考

http://www.phpunit.de/manual/3.6/ja/textui.html