Spike PHPCoverage

这两天研究了一下php的code coverage工具。貌似php的code coverage工具并不是像java那么多,只找到了一个比较靠谱的Spike PHPCoverage,还是知道0.8版本,好久没有维护了。

不过总比没有强,就先研究了一下这个工具。

下载地址:http://developer.spikesource.com/frs/?group_id=9&release_id=104

FAQ地址:http://developer.spikesource.com/wiki/index.php/Projects:phpcoverageFAQ#How_do_I_use_Spike_PHPCoverage_for_recording_code_coverage_locally.3F

总体来说看FAQ一步一步大体上可以搞定。需要Xdebug的支持。

分成了两个模式,一个是本地模式,就是写一些php类库,然后去调用,测试覆盖率,要求是一个调用过程,而不是那种在web server上的。另一个模式就支持web server上了。

 

主要研究了一下web server的覆盖率。大体说说我在使用过程中遇到的问题,大家可以少走弯路:

  1. 安装不说啥了,不难,下载好,配一下环境变量,然后装上xdebug就好了。
  2. 然后就是instrument过程,和大部分code coverage是一样的,进行代码注入,不过这里有很多需要注意的地方:
    1. 首先需要配置环境变量,建议直接在httpd.conf里面配置,在你的虚拟主机下面,加上一行:
      SetEnv PHPCOVERAGE_HOME /path/to/your/coverage/path/
    2. 然后检查一下你的Php.ini和httpd.conf下面有没有open_basedir的限制,如果有,就加上你刚刚设置的变量的地址,不然会报找不到路径的错误,但是实际上已经找到了。
    3. 代码注入的时候,看一下FAQ也就明白了。使用命令"php /cli/instrument.php -b . file1.php file2.php"
    4. 注入之后,最好去目录下面看一下,在你的目录下面,应该增加了两个文件,phpcoverage.remote.top.inc.php和phpcoverage.remote.bottom.inc.php
    5. 另外一个一定要检查的地方,就是打开你注入的文件,会发现第一行和最后一行都有require_once这两个文件的迹象。
    6. 非常非常重要的一点:如果你是第一次注入,就忽略,如果不是,一定要删除这两个文件之后再注入,否则会出现以下状况:
      1. 运行测试的时候会非常慢
      2. Web会有很长的报错
      3. 覆盖率为0
  3. Instruments之后,请到samples里面找到他的remote里面的例子,按照例子去修改自己的测试。
  4. 运行测试之后,要注意在你运行用例下面的report里面查看结果。其实直接看report.txt就可以看到大体结果,需要详细的,就去看html。

总结:

这个是我见到功能最少的代码覆盖率工具,只覆盖语句,报表也很简单。不过没有其他更好的工具前,可以尝试用一用。

感谢您关注我的个人博客!
为了您的更好的阅读和留言,建议您注册用户,这样您可以获得更大的权限,以及更方便的留言。
注册只需要一分钟的时间。但是您需要提供您的邮箱。注册后,密码会自动发到您的邮箱,请在第一次登录时修改。
我承诺不会将您的Email泄露给他人,或者发送垃圾邮件。

用户登录

我的微博

feedsky
抓虾
google reader
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点
帮看