CircleCI2.0でPHPUnitのコードカバレッジを出力する

概要

CircleCi2.0でPHPUnitのコードカバレッジを出力する

環境

  • CircleCi2.0
  • docker
  • docker-compose
  • PHPUnit6系
  • PHP7.2系

手順

phpunit.xmlの設定を調整する

カバレッジの対象としたいソースを指定する。

こんな感じで記述する。 phpunit.xml

カバレッジレポートを出力する

xdebugを使うよりも速いらしいのでphpdbgを使ってhtml形式のカバレッジレポートを作成する。 CI上でメモリ不足で落ちたため、メモリリミットを指定するようにしている。

phpdbg -qrr vendor/bin/phpunit -d memory_limit=512M --coverage-html /tmp/artifacts"

./circleci/config.ymlを調整する

CircleCIのテスト実行後に、artifactsからカバレッジレポートを見れるようにしたいので、store_artifactsを使ってカバレッジレポートをartifactsにアップロードするタスクを記述する。

今回はdocker上でテストを行っているため、ホスト側とdocker側でカバレッジレポートのソースをマウントさせる必要があった。 やっつけかもしれないが、docker cpコマンドでファイルコピーする方法で実行してみた。

.circleci/config.yml

所感

カバレッジを出力することができたので各種Webサービス(codacyとかcoverallとか)と連携させてみたい。 ファイルのマウントが必要なことに気づかず時間をかかってしまった....

参考