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を使うと全体に影響しちゃうのでこうすることで自分の環境でだけ動くようになりました