程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Xdebug文檔(五) 代碼覆蓋分析,xdebug文檔

Xdebug文檔(五) 代碼覆蓋分析,xdebug文檔

編輯:關於PHP編程

Xdebug文檔(五) 代碼覆蓋分析,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() 恢復信息收集。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved