萬由無事覚書

不知物故萬由無事覚書仕候也。

Windows環境でRSpecなどの出力に色を付けるには

これから

ansiconをインストールする。

インストールは次のようにする。

  • アーカイブを展開
  • 32bit OSならx86フォルダ、64bit OSならx64フォルダの中身を任意の場所にコピー。

レジストリを使用してでも簡単に使いたい場合

  • cmd.exeを実行し、コピーしたフォルダにcdする。
  • その後、次のコマンドを実行。
    ansicon -i

実行後、cmd.exeが実行されるたびに自動的にansiconが実行されるようになる (cmd.exeのAutoRunレジストリエントリにansiconを設定してくれる)。

この状態で、普通にコマンドを実行すれば、出力に色がつく。例えば

C:\dir> rspec --color

ansiconをアンインストールしたい場合は次のようにする。

ansicon -u

これでレジストリから設定が消える。あとはインストールしたフォルダを消去する。

どうあってもレジストリを使いたくない場合

レジストリを使いたくない場合は次のようにする。

  • ansiconのインストールフォルダを環境変数PATHに追加し、検索パスを通す。
  • その後、例えば次のように実行。これで色がつく。
    C:\dir> ansicon rspec --color

アンインストールに気をつける部分はなく、フォルダごと消去で問題ない。

これまで

win32consoleを使っていた。

なぜ?

色。テストの時は大事ですよね。視覚的に失敗がわかるのはありがたい。

でも、Windows環境下でRSpecを実行したら、色が妙なことになってた。調べてみると、「gem install win32consoleすべし!」といろいろなサイトに書いてあったんだが……

今のRSpecではwin32consoleを読み込んでいない。

そのため、--colorオプションを付けてANSIカラーコードを出力しても、Windows環境では妙な文字が出力されるだけになる。

現在、RSpecやCucumberなど色出力を使うアプリケーションは、win32consoleを使わずansiconを利用する方向らしい (参照)。