composer scripts から起動した phpunit でも色付きで出力させる


laravel での開発などで、composer からインストールした phpunit を使うには、

  • vendor/bin/phpunit といった具合で直に呼び出す
  • composer の scripts に登録する(composer phpunitみたいにつかう)

のいずれかの方法になると思いますが、

  • 前者は地味にタイプ量が多い(まぁ気になるほどでは無いですが…)
  • 後者はなぜか --colors オプションを付けても色付きで出力されない

というなんとも微妙な状況。
個人的には、compose scripts に登録しつつ --colors オプションも有効にしたい!

…ということで調べてみました。

composer scripts から起動した phpunit でも --colors オプションを使う方法

composer.json に書くときにちょっと工夫すればOKでした。
具体的には、 --colors オプションを、 --colors=always とするだけでした。

composer.json
{
    ...
    "scripts": {
        "phpunit": [
            "vendor/bin/phpunit --colors=always"
        ]
    }
    ...
}

これであとはいつもどおり、

composer phpunit

としてあげれば色付きで出力してもらえます。

ちなみに、composer run scripts で色付きにする場合、composer.json にコマンドを書く際に '--ansi' オプションを付ければ良いらしいのですが、phpunit でそれをやろうとすると何故か怒られてしまい、代わりに --colors=always を使えば良いみたいです。

参考