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

Windowsでphpunit --colors

あるいはコマンドプロンプトANSIカラーを表示させる方法。

Windowsのコマンドプロンプトphpunit --colorsすると、

こんな感じになります。ゲンナリです。グリーンにならないならテストに対する意欲も半減です。コマンドプロンプトに色を付けるには、SetConsoleTextAttribute()とかいうWin32APIを使う必要があるらしいです。で、調べてたら、
WindowsのコマンドプロンプトでもANSIカラーを使いたい「wac」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ
こんなのを見つけました。これはANSIエスケープシーケンスを読みこんでSetConsoleTextAttribute()を呼び出してくれるもの。なんですが中を見てみたら結構手抜きの実装で、phpunit --colorsの出力では上手くいきません。

なんでこれを直してやろうかと色々試行錯誤していたら、別の方法を発見しました。

パイプでwacじゃなくて単にcatに渡してやればいい。このcatはmsysのcat(\msys\1.0\bin\cat.exe)です。msysGitを使ってればそっち(\Program Files\Git\bin\cat.exe)でも良いと思います。
どこのレイヤでそうなってるのかよくわからないような、当たり前といわれれば当たり前ような解決でした。