CircleCIでPHPUnitを実行してCode Coverageを出力する

CircleCIでPHPUnitを実行してCode Coverageを出力する

PHPUnitでcoverageをhtmlで出力するとわかりやすいんだけど手元でやると以上に時間が・・・
というわけでCircleCIを使って外部化してみました

pushすると毎回こんなhtmlを出力出来るようになります
https://circle-artifacts.com/gh/nobuhiko/ec-cube/208/artifacts/0/tmp/circle-artifacts.URvN58K/index.html

circle.ymlなど使って、PHPUnitでテストが出来る状態になっていればこう書くだけ

./vendor/bin/phpunit --coverage-html=$CIRCLE_ARTIFACTS

EC-CUBE3はテストが動くようになっていなかったので、Project Settingsであれこれ設定してテストを動かすようにしました

Environment variables

DB=mysql
USER=ubuntu
DBNAME=circle_test
DBPASS=$(printf ' ')
DBUSER=ubuntu

Install dependencies

Preが

phpenv global 5.4.21
sed -i 's/^;//' ~/.phpenv/versions/5.4.21/etc/conf.d/xdebug.ini
echo pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock >> ~/.phpenv/versions/5.4.21/etc/conf.d/xdebug.ini
echo "memory_limit = 256M" > ~/.phpenv/versions/5.4.21/etc/conf.d/memory.ini
sudo service apache2 restart

overridesが

composer install --prefer-source --no-interaction
sh ./eccube_install.sh mysql none

test commands が

./vendor/bin/phpunit --coverage-html=$CIRCLE_ARTIFACTS

circle.ymlを使うと全体に影響しちゃうのでこうすることで自分の環境でだけ動くようになりました