piece/stagehand-testrunner — pull request #15 by ngyuki (2012-11-02 10:11:04+00:00)
Title: PHPUnitGroupFilterTestSuite の グループでフィルタしている部分をチューニング

いつも MakeGood と共に使わせていただいています。

`PHPUnitGroupFilterTestSuite`で phpunit.xml のグループの設定をもとにテストスイートの`$tests`プロパティがフィルタされていますが、テストメソッドの数だけ`shouldExclude`が呼ばれるためテストコードが大量になってくるとテストの始動にかなり時間がかかることがあります（とくに MakeGood でテスト駆動っぽいことを行なっていると）。

そこで下記の通りに変更してみました。

- `PHPUnit_Framework_TestSuite`の`$groups`プロパティにテストがグループに分類されて入っているのでコンストラクタ後にまとめてフィルタ
- グループのマッチングを`SplObjectStrage`の`contains`に変更(`in_array`は遅いので)

`PHPUnitRunnerTest`のテストでコードが壊れていないことだけは確認しましたが、既存の下記の部分などでわからない箇所もあったので、このまま取り込めるかどうかわかりません・・・

```php
if ($this->tests[0] instanceof \PHPUnit_Framework_Warning
&& preg_match('/^No tests found in class/', $this->tests[0]->getMessage())
) {
...
}
```

どうぞご確認とご検討をお願いいたします。