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

來源:互聯網
上載者:User

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:

phpxdebug_start_code_coverage( XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE );?>

void xdebug_stop_code_coverage( [int cleanup=true] )

停止代碼覆蓋分析

該函數停止收集資訊,該資訊在記憶體中會被清除。如果你傳遞“false”參數,則代碼覆蓋資訊不會被清除而能讓你再次使用 xdebug_start_code_coverage() 恢複資訊收集。

http://www.bkjia.com/PHPjc/1133565.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1133565.htmlTechArticleXdebug文檔(五) 代碼覆蓋分析,xdebug文檔 代碼覆蓋分析能在請求時讓你知道指令碼哪一行(或哪一段)在執行。 相關設定 xdebug.coverage_enab...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.