Xdebugドキュメント (5) コードカバレッジ分析

WBOY
リリース: 2016-06-17 08:21:51
オリジナル
1066 人が閲覧しました

コード カバレッジ分析により、要求されたときにスクリプトのどの行 (またはセクション) が実行されるかを知ることができます。

関連設定

xdebug.coverage_enable

タイプ: ブール、デフォルト値: 1

で始まります

Xdebug >= 2.2

0 に設定すると、Xdebug はコード分析を可能にする組み込み構造をセットアップしません。これにより、xdebug の速度が向上しますが、コード カバレッジ分析は機能しなくなります。

関連機能

ブール値 xdebug_code_coverage_started()

コード カバレッジ分析が開始されたかどうかを確認するブール値を返します。

例:

<?<span style="color: #000000;">php
    </span><span style="color: #008080;">var_dump</span><span style="color: #000000;">(xdebug_code_coverage_started());

    xdebug_start_code_coverage();

    </span><span style="color: #008080;">var_dump</span><span style="color: #000000;">(xdebug_code_coverage_started());
</span>?>  
ログイン後にコピー

戻り値:

bool(false)
ログイン後にコピー
bool(true)
ログイン後にコピー
 
ログイン後にコピー

配列 xdebug_get_code_coverage()

スクリプトのどの行 (参照ファイルを含む) が実行されているかを含む構造体を返します。以下は、特定のファイルを指定するコード カバレッジの例を示しています。

例:

<?<span style="color: #000000;">php
    xdebug_start_code_coverage();

    </span><span style="color: #0000ff;">function</span> a(<span style="color: #800080;">$a</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$a</span> * 2.5<span style="color: #000000;">;
    }

    </span><span style="color: #0000ff;">function</span> b(<span style="color: #800080;">$count</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">for</span> (<span style="color: #800080;">$i</span> = 0; <span style="color: #800080;">$i</span> < <span style="color: #800080;">$count</span>; <span style="color: #800080;">$i</span>++<span style="color: #000000;">) {
            a(</span><span style="color: #800080;">$i</span> + 0.17<span style="color: #000000;">);
        }
    }

    b(</span>6<span style="color: #000000;">);
    b(</span>10<span style="color: #000000;">);

    </span><span style="color: #008080;">var_dump</span><span style="color: #000000;">(xdebug_get_code_coverage());
</span>?>  
ログイン後にコピー

戻り値:

配列

'/home/httpd/html/test/xdebug/docs/xdebug_get_code_coverage.php' =>

配列

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] )

コードカバレッジ分析の開始

この関数はコードカバレッジ情報の収集を開始します。この情報は 2 次元配列で構成され、1 次元のインデックスは実行ファイル名、2 次元のインデックスは行番号です。要素の値は、行が実行されたか、または到達不能な行があるかを示します。

各行に返される値:

1: この行はすでに実行されています
  • -1: この行は実行されていません
  • -2: この行には実行可能コードがありません
  • -1 の値は XDEBUG_CC_UNUSED がオンの場合にのみ返され、-2 の値は XDEBUG_CC_UNUSED と XDEBUG_CC_DEAD_CODE が同時にオンの場合にのみ返されます。

関数には列挙値を含む 2 つのオプションがあります:

XDEBUG_CC_UNUSED

コード検出を有効にし、実行可能なコード行を示します。この項目がないと、返される配列には実際に実行された行番号のみが含まれます。

XDEBUG_CC_DEAD_CODE

追加の分析を開始して、どのコードが実行可能かを示します。

これらのオプションを有効にすると、コード カバレッジ分析の速度が大幅に低下します。

次の例は、オプションの使用方法を示しています:

例:

<?<span style="color: #000000;">php
xdebug_start_code_coverage( XDEBUG_CC_UNUSED </span>|<span style="color: #000000;"> XDEBUG_CC_DEAD_CODE );
</span>?>
ログイン後にコピー

void xdebug_stop_code_coverage( [int cleanup=true] )

コードカバレッジ分析を停止

この関数は情報の収集を停止し、情報はメモリから消去されます。 「false」パラメータを渡すと、コード カバレッジ情報はクリアされず、

xdebug_start_code_coverage()

を再度使用して情報収集を再開できます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート