Xdebug文档(五) 代码覆盖分析
2016-06-16 11:13
169 查看
代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行。
[b]相关设置[/b]
xdebug.coverage_enable
类型:boolean,默认值:1,始于
Xdebug>=2.2
如果设为0,Xdebug不会设置内置结构来允许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工作。
Example:
Returns:
arrayxdebug_get_code_coverage()
返回一结构包含脚本哪一行(包括引用文件)在执行。以下展示代码覆盖指定某一文件示例:
Example:
Returns:
array
'/home/httpd/html/test/xdebug/docs/xdebug_get_code_coverage.php'=>
array
5=>int1
6=>int1
7=>int1
9=>int1
10=>int1
11=>int1
12=>int1
13=>int1
15=>int1
16=>int1
18=>int1
voidxdebug_start_code_coverage([intoptions])
开始代码覆盖分析
该函数开始收集代码覆盖信息。该信息由二维数组形成,一维索引为执行文件名二级索引为行号。元素值表示该行是否被执行或它拥有未能到达的行。
每行返回的值:
1:该行已执行过
-1:该行未被执行
-2:该行没有可执行的代码
-1值只有在XDEBUG_CC_UNUSED开启后才会返回,而-2值只有XDEBUG_CC_UNUSED和XDEBUG_CC_DEAD_CODE同时开启才会返回。
函数有两个以枚举值的选项:
XDEBUG_CC_UNUSED
开启检测代码并说明哪行为可执行代码。无此项则返回的数组只包含实际执行过的行号。
XDEBUG_CC_DEAD_CODE
开始额外的分析说明哪些代码能被执行。
如果开启这些选项执行大幅减慢代码覆盖分析速度。
以下示例展示如何使用选项:
Example:
voidxdebug_stop_code_coverage([intcleanup=true])
停止代码覆盖分析
该函数停止收集信息,该信息在内存中会被清除。如果你传递“false”参数,则代码覆盖信息不会被清除而能让你再次使用xdebug_start_code_coverage()恢复信息收集。
[b]相关设置[/b]
xdebug.coverage_enable
类型:boolean,默认值:1,始于
Xdebug>=2.2
如果设为0,Xdebug不会设置内置结构来允许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工作。
相关函数
booleanxdebug_code_coverage_started()
返回布尔值查看代码覆盖分析是否已经开始。Example:
<?php var_dump(xdebug_code_coverage_started()); xdebug_start_code_coverage(); var_dump(xdebug_code_coverage_started()); ?>
Returns:
bool(false)
bool(true)
arrayxdebug_get_code_coverage()
返回一结构包含脚本哪一行(包括引用文件)在执行。以下展示代码覆盖指定某一文件示例:
Example:
<?php
xdebug_start_code_coverage();
functiona($a){
echo$a*2.5;
}
functionb($count){
for($i=0;$i<$count;$i++){
a($i+0.17);
}
}
b(6);
b(10);
var_dump(xdebug_get_code_coverage());
?>
Returns:
array
'/home/httpd/html/test/xdebug/docs/xdebug_get_code_coverage.php'=>
array
5=>int1
6=>int1
7=>int1
9=>int1
10=>int1
11=>int1
12=>int1
13=>int1
15=>int1
16=>int1
18=>int1
voidxdebug_start_code_coverage([intoptions])
开始代码覆盖分析
该函数开始收集代码覆盖信息。该信息由二维数组形成,一维索引为执行文件名二级索引为行号。元素值表示该行是否被执行或它拥有未能到达的行。
每行返回的值:
1:该行已执行过
-1:该行未被执行
-2:该行没有可执行的代码
-1值只有在XDEBUG_CC_UNUSED开启后才会返回,而-2值只有XDEBUG_CC_UNUSED和XDEBUG_CC_DEAD_CODE同时开启才会返回。
函数有两个以枚举值的选项:
XDEBUG_CC_UNUSED
开启检测代码并说明哪行为可执行代码。无此项则返回的数组只包含实际执行过的行号。
XDEBUG_CC_DEAD_CODE
开始额外的分析说明哪些代码能被执行。
如果开启这些选项执行大幅减慢代码覆盖分析速度。
以下示例展示如何使用选项:
Example:
<?php
xdebug_start_code_coverage(XDEBUG_CC_UNUSED|XDEBUG_CC_DEAD_CODE);
?>
voidxdebug_stop_code_coverage([intcleanup=true])
停止代码覆盖分析
该函数停止收集信息,该信息在内存中会被清除。如果你传递“false”参数,则代码覆盖信息不会被清除而能让你再次使用xdebug_start_code_coverage()恢复信息收集。
相关文章推荐
- (python 1)python中staticmethod函数、内建函数setattr
- ubuntu 安装jdk1.6
- QT 的 lineEdit的textChanged(const QString &)信号被触发两次的原因
- 一路编程,一路迷茫,一路醒悟,接着迷茫,再醒悟再迷茫
- Bzoj2005[Noi2010]能量采集
- PyInstaller打包
- java.lang.IllegalArgumentException
- C#委托和事件
- Java中产生随机数的两种方法 .
- php zip打包下载文件
- python错误和异常--总结笔记
- An error occurred during the org.eclipse.equinox.internal.p2.engine.phases.CheckTrust phase
- 关于ftp下显示的时间和系统时间不一致的解决方法
- LZW压缩算法 C#源码
- eclipse+adt下开发android微信红包自动抢(AccessibilityService类)
- Qt 清空文件夹,删除非空文件夹
- PHP用substr截取字符串出现中文乱码问题用mb_substr
- 第一篇:打造专属开发工具Eclipse篇
- JAVA对象的克隆
- C++ 中MessageBox的常见用