• Xdebug文档(五) 代码覆盖分析


    代码覆盖分析能在请求时让你知道脚本哪一行(或哪一段)在执行。

    相关设置

    xdebug.coverage_enable

    类型: boolean, 默认值: 1, 始于 

    Xdebug >= 2.2

    如果设为0, Xdebug不会设置内置结构来允许代码分析,这能加速xdebug快些,不过代码覆盖分析将不会工作。

    相关函数

    boolean xdebug_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)
     

    array xdebug_get_code_coverage()

    返回一结构包含脚本哪一行(包括引用文件)在执行。以下展示代码覆盖指定某一文件示例:

    Example:

    <?php
        xdebug_start_code_coverage();
    
        function a($a) {
            echo $a * 2.5;
        }
    
        function b($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 => int 1

          6 => int 1

          7 => int 1

          9 => int 1

          10 => int 1

          11 => int 1

          12 => int 1

          13 => int 1

          15 => int 1

          16 => int 1

          18 => int 1

    void xdebug_start_code_coverage( [int options] )

    开始代码覆盖分析

    该函数开始收集代码覆盖信息。该信息由二维数组形成,一维索引为执行文件名二级索引为行号。元素值表示该行是否被执行或它拥有未能到达的行。

    每行返回的值:

    • 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 );
    ?>

    void xdebug_stop_code_coverage( [int cleanup=true] )

    停止代码覆盖分析

    该函数停止收集信息,该信息在内存中会被清除。如果你传递“false”参数,则代码覆盖信息不会被清除而能让你再次使用 xdebug_start_code_coverage() 恢复信息收集。

  • 相关阅读:
    4. 单向循环链表
    3. 单向链表
    2. 队列的实现
    1. 时间复杂度(大O表示法)以及使用python实现栈
    Ubuntu16.04LTS安装集成开发工具IDE: CodeBlocks 和Eclipse-cdt
    Ubuntu16.04搭建各种开发环境的IDE: QT5 , CodeBlocks ,eclipse-cdt, PyCharm
    python2和python3 分别连接MySQL的代码
    面向对象基础
    文件的处理
    离散表(哈希表),深浅拷贝
  • 原文地址:https://www.cnblogs.com/xiwang6428/p/5590353.html
Copyright © 2020-2023  润新知