Php

phpunitユニットテストコードカバレッジ



Phpunit Unit Test Code Coverage



最近、チームはプロジェクトの単体テストケースを絶えず改善しており、コードカバレッジ分析を使用します。当初、homesteadにはデフォルトでxdebugをインストールする必要があると考えられていたため、phpunit --coverage-html ./tests/codeCoverageを使用しますHTMLレポートを生成するが、実行後に次のエラーが表示される

Error: No code coverage driver is available

これは、xdebugがインストールまたは有効化されていないためです。



個人的な環境:

PHP 7.2.0-1 + ubuntu16.04.1



xdebugをインストールします

$ wget https://xdebug.org/files/xdebug-2.6.0.tgz $ tar xvzf xdebug-2.6.0.tgz $ cd xdebug-2.6.0 $ phpize7.2 $ ./configure --enable-xdebug $ make $ sudo make install

PHPのxdebugを有効にする

find /usr/ -name 'xdebug.so' /usr/lib/php/20170718/xdebug.so //xdebug 2.6.0 version just installed /usr/lib/php/20131226/xdebug.so /usr/lib/php/20160303/xdebug.so /usr/lib/php/20151012/xdebug.so vi /etc/php/7.2/cli/php.ini

次のコードをphp.iniに追加します最後に

zend_extension='/usr/lib/php/20170718/xdebug.so' xdebug.remote_enable = 1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9000 xdebug.max_nesting_level = 500

ビルドコードカバレッジレポート

2つの方法があります:

1.直接実行phpunit --coverage-html ./tests/codeCoverageコマンド
2. In phpunit.xml次のコードを追加します。



<logging> <log type='coverage-html' target='./tests/codeCoverage' charset='UTF-8'/> logging>

次に、直接実行しますphpunitそれでおしまい。

完了はtests/codeCoverageになります次のように、ディレクトリの下にhtmlレポートを生成します。

画像
この分析を通じて、単体テストの改善、コードテストの整合性の確保、およびコードの堅牢性の向上に役立ちます。

ディスカッション交換

画像