概要
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とか)と連携させてみたい。 ファイルのマウントが必要なことに気づかず時間をかかってしまった....