コード カバレッジ分析により、要求されたときにスクリプトのどの行 (またはセクション) が実行されるかを知ることができます。
関連設定
xdebug.coverage_enable
タイプ: ブール、デフォルト値: 1、
で始まりますXdebug >= 2.2
0 に設定すると、Xdebug はコード分析を可能にする組み込み構造をセットアップしません。これにより、xdebug の速度が向上しますが、コード カバレッジ分析は機能しなくなります。
コード カバレッジ分析が開始されたかどうかを確認するブール値を返します。
例:
<?<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: この行はすでに実行されています
関数には列挙値を含む 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()を再度使用して情報収集を再開できます。