Jestのカバレッジから特定のコード行を除外・無視する方法

この記事では『Jestのカバレッジ測定』について、

  • Jestのカバレッジから特定のコード行を除外・無視する方法

を分かりやすく説明するように心掛けています。ご参考になれば幸いです。

Jestのカバレッジから特定のコード行を除外・無視する方法

Jestを用いたJavaScriptのテストでは、全てのコードがテストの対象であるとは限りません。このような場合には、特定のコード行をテストの対象から除外する必要があります。

以下に示すコメントをコードに追加することで、カバレッジ計測から特定の行を除外することができます。

  • /* istanbul ignore if */ or // istanbul ignore if
    • 「次の行のif文」と「その中のコード」をカバレッジの測定から無視する
  • /* istanbul ignore else */ or // istanbul ignore else
    • 「次の行のelse節」と「その中のコード」をカバレッジの測定から無視する
  • /* istanbul ignore next */ or // istanbul ignore next
    • 「次の行」をカバレッジの測定から無視する

ここで、「istanbul」は、Jestが使用するコードのカバレッジ(コードのどの部分がテストでカバーされているかを示す指標)を計測するツールです。Istanbulは、上記に示している特殊なコメントを解釈して、カバレッジ計測から特定の行やブロックを除外することが可能になります。

では実際のプログラム例で説明します。

istanbul ignore if

「次の行のif文」と「その中のコード」をカバレッジの測定から無視します。

プログラム例

/* istanbul ignore if */
if (debug) {			        // カバレッジレポートから除外
    console.log('hogehoge');	// カバレッジレポートから除外
}

istanbul ignore else

「次の行のelse節」と「その中のコード」をカバレッジの測定から無視します。

プログラム例

if (debug) {
    console.log('hogehoge');
}
/* istanbul ignore else */
else {				            // カバレッジレポートから除外
    console.log('hogehoge');	// カバレッジレポートから除外
}

istanbul ignore next

「次の行」をカバレッジの測定から無視します。

プログラム例

/* istanbul ignore next */
if (debug) {			        // カバレッジレポートから除外
    console.log('hogehoge');	// この行はカバレッジレポートに含まれる
}

/* istanbul ignore next */のコメントは、直後の一行のみをカバレッジレポートから除外します。したがって、この場合ではif (debug)の行のみがカバレッジレポートから除外され、console.log('hogehoge');の行はカバレッジレポートに含まれます。

本記事のまとめ

この記事では『Jestのカバレッジ測定』について、以下の内容を説明しました。

  • Jestのカバレッジから特定のコード行を除外・無視する方法

お読み頂きありがとうございました。