xdebug付きで実行すると速度が遅いのでphpunit実行やcomposer, php-cs-fixerなどのコマンドはxdedug無しで実行します。
以前aliasを使って実行時にxdebugを指定する方法を紹介しましたが、この記事ではテストカバレッジとPhpStormの時だけxdebugを使う方法を説明します。
xdebugをオフ
普段はオフにします。php --ini
で場所を調べコメントアウト。
;zend_extension = "/path/to/my/xdebug.so"
テストカバレッジ
テストカバレッジを取るときのcomposerコマンドをcomposer.json
に追記
{
"scripts" :{
"coverage": ["php -dzend_extension=xdebug.so ./vendor/bin/phpunit --coverage-text --coverage-html=build/coverage"],
}
}
phpunit.xml.distの<logging>
の項目はphpunitのみ実行した時にxdebugが読み込まれてないという警告が出るので(実害はないですが)削除します。
実行はcomposerコマンドで行います。
composer coverage
PhpStorm
PhpStormでデバッカーを使ってブレイクやステップトレースにするためにxdebug.soを読み込む設定にします。
Language & Frameworks > ... > Advanced > Configuration optionsでdirectiveにzend_extension、値をxdebug.soと設定するとxdebug付きでPHP実行されるようになります。