Closed ngyuki closed 12 years ago
いつも MakeGood と共に使わせていただいています。
PHPUnitGroupFilterTestSuiteで phpunit.xml のグループの設定をもとにテストスイートの$testsプロパティがフィルタされていますが、テストメソッドの数だけshouldExcludeが呼ばれるためテストコードが大量になってくるとテストの始動にかなり時間がかかることがあります(とくに MakeGood でテスト駆動っぽいことを行なっていると)。
PHPUnitGroupFilterTestSuite
$tests
shouldExclude
そこで下記の通りに変更してみました。
PHPUnit_Framework_TestSuite
$groups
SplObjectStrage
contains
in_array
PHPUnitRunnerTestのテストでコードが壊れていないことだけは確認しましたが、既存の下記の部分などでわからない箇所もあったので、このまま取り込めるかどうかわかりません・・・
PHPUnitRunnerTest
if ($this->tests[0] instanceof \PHPUnit_Framework_Warning && preg_match('/^No tests found in class/', $this->tests[0]->getMessage()) ) { ... }
どうぞご確認とご検討をお願いいたします。
パッチを master ブランチに適用いたしました。ライセンスは本体と同様とみなしております。
わからない部分として挙げられているコードはグループフィルター適用により除外されたテストがJUnit XMLに表れるテストの件数として含まれないようにするためのものですが、今回のパッチにおいてもより良い形で実現できておりますので問題ありません。
ありがとうございました。
ご確認、ご対応ありがとうございました!
いつも MakeGood と共に使わせていただいています。
PHPUnitGroupFilterTestSuite
で phpunit.xml のグループの設定をもとにテストスイートの$tests
プロパティがフィルタされていますが、テストメソッドの数だけshouldExclude
が呼ばれるためテストコードが大量になってくるとテストの始動にかなり時間がかかることがあります(とくに MakeGood でテスト駆動っぽいことを行なっていると)。そこで下記の通りに変更してみました。
PHPUnit_Framework_TestSuite
の$groups
プロパティにテストがグループに分類されて入っているのでコンストラクタ後にまとめてフィルタSplObjectStrage
のcontains
に変更(in_array
は遅いので)PHPUnitRunnerTest
のテストでコードが壊れていないことだけは確認しましたが、既存の下記の部分などでわからない箇所もあったので、このまま取り込めるかどうかわかりません・・・どうぞご確認とご検討をお願いいたします。