読者です 読者をやめる 読者になる 読者になる

k-holyのPHPとか諸々メモ

Webで働くk-holyがPHP(スクリプト言語)とか諸々のことをメモしていきます。ソースコードはだいたいWindowsで動かしてます。

WindowsでStagehand_TestRunnerの設定ファイルとカラーリングを有効にしたメモ

PHP Windows

諸々の事情でまだ業務においてはCIはおろか自動テスト環境も整っていないんですが、クラスライブラリの開発ではいつも Stagehand_TestRunner を使った自動テストを行っています。

V3になってから全面的にSymfonyコンポーネントを採用され、コマンドやオプションが変わったり、PHPUnitXML設定ファイル(いわゆるphpunit.xml)にも対応されたのですが、相変わらずシェルの履歴から長いオプション付きのコマンドを呼び出してました。

しかし、将来的にライブラリを公開するのであれば、テスト対象のディレクトリ構造やクラス、あるいはプリロードスクリプトなどの情報がどこにもないのは不親切だと感じますし、多くの方がphpunit.xmlを添付されている現状も考えて、ファイルに書くことにした次第です。

Stagehand_TestRunner はYAMLによる構成ファイルをサポートしていますが、テストランナーをPHPUnitで実行する際の設定ファイルを指定することができます。
そのため、ディレクトリ監視によるファイル保存時のテスト自動実行やGrawlによる通知など、Stagehand_TestRunner 由来の設定についてはYAMLファイルに記述しますが、PHPUnitでも設定可能な項目については、phpunit.xmlに記述することにしました。

testrunner.yml

いつも自動テストだと困ることもあるので、設定ではautotestは指定していません。
コマンドオプションに "a" を追加するだけなのでそんな手間でもないし。

phpunit.xml

中には重複する内容もありますが、PHPUnitで定義できるものについてはそちらにも記述しておいた方が良いのかなと。

記述内容は PHPUnit Manual 3.7 の以下のページを参考に。
付録C XML 設定ファイル
第5章 コマンドラインのテストランナー

なお、エスケープシーケンスによる色付けはWindows7だとOS側で対応するのは難しそうなので、testrunnerコマンドの出力結果をmsysGitのcatコマンドに渡すようにしました。
(NYAOS + UnixLike Toolsを使ってますので、NYAOS設定ファイルでcatコマンドのaliasをUnixLike TooslからmsysGitの方に変更)

参考記事
Windowsでphpunit --colors - iakioの日記

これでWindows開発環境でも "testrunner phpunit -c testrunner.yml|cat" でカラーリングしつつ、全て設定ファイルの記述で済むようになりました。

PHPUnit単体で実行する際は "phpunit --configuration phpunit.xml|cat" になりますが、私自身そうすることはないでしょう。
(一応試しにやってはみましたが、Failure/Skip/Incomplete な結果しか表示されないので、なんか寂しかったです)

なんで Eclipse PDT + MakeGood じゃないの?って言われそうですが…。