PHP 代码覆盖率分析

PHP代码覆盖率分析

平台:
 Windows 2003 Server x64
 内存: 2G

软件需求:
 1. PHP 5.0 或以上版本
 2. Xdebug Zend扩展扩展
http://www.xdebug.org
 3. PEAR XML_Parser 模块1.25 或则以上版本
 4. Spike PHPCoverage 0.8
http://developer.spikesource.com/projects/phpcoverage/


1. 配置文件

<? php
 
define('DS',
 DIRECTORY_SEPARATOR);
 
 
define('CODE_DIR','F:/home/projects/speedtest'); // 被分析的代码目录


 
define('REPORT_GENERATE_DIR', dirname(dirname(dirname(__FILE__))) .DS.  'report' );
 
//echo REPORT_GENERATE_DIR;

?>


2. 运行测试

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 
<title>
 
</title>
</head>
<body>
<pre>
<? php

 
define("PHPCOVERAGE_HOME", 'F:/home/lab/debugger/spikephpcoverage-0.8/src'
);
 
require_once 'config.php'
;
 
require_once PHPCOVERAGE_HOME . '/CoverageRecorder.php'
;
 
require_once PHPCOVERAGE_HOME . '/reporter/HtmlCoverageReporter.php'
;
 
/*

  * HtmlCoverageReporter 构造函数参数说明
  * 
  * @param string 覆盖率报告标题
  * @param string 样式页文件名称
  * @param string 报告生成目录
  
*/
 
$reporter = new HtmlCoverageReporter('Study Spike PHPCoverage', '',  REPORT_GENERATE_DIR);
 
/*

  * CoverageRecorder 构造函数参数说明
  * 
  * 路径包含和排除数组可以包含任意文件名或者目录
  * 
  * @param array 要分析的PHP代码包含路径
  * @param array 排除路径
  * @param HtmlCoverageReporter HtmlCoverageReporter报告类
  
*/
 
$includePaths = array  (
  
'.','F:/home/projects/speedtest'

 );
 
$excludePaths = array  (
 );
 
/*

  * 注意要排除包含实际测试的目录
  
*/
 
$cov = new CoverageRecorder($includePaths, $excludePaths, $reporter );
 
/*

  * 启动代码覆盖率分析
  
*/
 
$cov-> startInstrumentation();
 
define('all',''
);
 
require_once 'simpletest/unit_tester.php'
;
 
require_once 'simpletest/reporter.php'
;
 
 
// ====================== 包含被测试代码 ============================

 require_once 'F:homeprojectsspeedtestqueryByIspAndArea.php' ;
 
// ====================== 包含被测试代码 ============================

 
 
/*

  * 结束代码覆盖率分析
  
*/
 
$cov-> stopInstrumentation();
 
/*

  * 生成报告,可选的输出摘要信息
  
*/
 
$cov-> generateReport();
 
$reporter->
printTextSummary();
?>

<pre>
</body>
</html>

 

图一. 棕色代码行表示可执行代码,但在运行过程中没有得到执行,蓝色表示可执行代码并在测试过程中得到了执行

图2. 覆盖率摘要

图3. 覆盖率代码分析

  1. Total: 文件总行数
  2. Covered: 执行行数
  3. Missed: 未执行行数
  4. Executeable: 可执行代码总行数
  5. Code Coverage: 覆盖率百分率

 

参考:
1. 简介:
http://developer.spikesource.com/wiki/index.php/Projects:phpcoverage
2. 常见问题: http://developer.spikesource.com/wiki/index.php/Projects:phpcoverageFAQ
3. API文档: http://www.spikesource.com/projects/phpcoverage/doc/index.html

 


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值