LoginSignup
1
2

More than 5 years have passed since last update.

xdebugでカバレッジを表示(AmazonLinux+PHP5.6)

Last updated at Posted at 2016-10-24

単体テスト以外のコードカバレッジを取りたくなったのだけど、使いやすそうなツールが見つからなかったので、xdebugを使ってコードカバレッジを測定してみた。

インストール

PHP5.6向けのxdebugは標準レポジトリに入っていないので、peclでインストールする。

sudo yum install php56 php56-devel php-pear
sudo pecl install xdebug 
sudo vi /etc/php.ini
# php.iniの末尾にでもextensionのロード指定を追加する→ zend_extension=/usr/lib64/php/5.6/modules/xdebug.so
sudo /etc/init.d/httpd restart #リスタート

phpinfo()で、xdebugが出力されていればインストールに成功しています。

2016-10-24_1205.png

使ってみた

カバレッジが取れるかやってみた。

実行したコード

以下のコードを実行しました。not zeroの行は実行されないはずです。

<?php
    xdebug_start_code_coverage();

    $x = 0;
    if($x == 0){
        echo "zero";
    }else{
        echo "not zero";
    }

    var_dump(xdebug_get_code_coverage());
?>

実行結果

8、9、10行目のカバレッジが記録されませんでした。妥当といえば妥当なのですが、コードがないとはいえ10行目は通っているので、不自然な感じはします。ソースコードとカバレッジを重ねて表示すると分かりやすいと思いました。複数のテストケースを実行した結果をデータベース等に保存し、ビューアーを作ることで、比較的簡単にコードカバレッジ測定(表示)ツールを作れそうです。

zero
/var/www/html/cover.php:11:
array (size=1)
  '/var/www/html/cover.php' => 
    array (size=5)
      4 => int 1
      5 => int 1
      6 => int 1
      7 => int 1
      11 => int 1

まとめ

ちょっと頑張ればコードカバレッジ測定ツール作れそう。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2