OTOBANK Engineering Blog

オトバンクはコンテンツが大好きなエンジニアを募集しています!

Xdebug が重い!それなら PHPDBG で CI を高速化だ〜!

こんにちは、毎度おなじみ @riaf です。ここのところ、私しかブログ記事を書いていませんが、社員が居ないわけではありません。きっとそのうち書いてくれると信じています (まじ、誰かホントに書いてくれよ...)。

今日はタイトル通り、PHP7+PHPUnit4.8 から PHPDBG でのカバレッジ出力がサポートされているので、これまで CI でのカバレッジ出力に時間かかってしまって辛かった部分を解消したいと思います。

準備するものはこちら!

  • PHP7
  • CircleCI (当ブログおなじみ!や、別に CircleCI である必要はないですよもちろん)

つまり、circle.yml

machine:
    php:
        version: 7.0.4

と書き、

test:
    override:
        - phpdbg -qrr vendor/bin/phpunit --coverage-html $CIRCLE_ARTIFACTS/coverage

こんな感じで PHPDBG を使うようにしてあげるだけでした。(もっとボリュームのあるブログになる予定だったのに!)

CircleCI にはあらかじめ phpdbg がインストールされているので、その他に必要な準備もなくあっさりと解決しました。

カバレッジを出力した後は、php-coveralls とか使って Coveralls にまとめてもいいし、$CIRCLE_ARTIFACTS の下に html を置いてもいいし (上の例)、好きにすればいいですね。

というわけで、PHP7 を前提にした記事を書きましたが、来月に札幌で開催される OSC 北海道で PHP のお話をすることになりました。やることがなくてどうしようもないようでしたら、ぜひ遊びに来てみてください!