スポンサーリンク

Angular × Vitestでコードカバレッジを測定する方法|設定・確認・しきい値まで完全解説

この記事は「Angular × Vite ユニットテスト入門|Vitestで始めるテスト完全ガイド」シリーズの一部です。

Angular × Vitestでコードカバレッジを測定する方法|設定・確認・しきい値まで完全解説

Angularのユニットテストにおいて「コードカバレッジ」は、テストの品質を可視化する重要な指標です。

特に近年はVitestが標準化されつつあり、従来のKarma/Jasmine環境とは異なる設定や考え方が必要になります。

本記事では、Angular + Vitest環境でのコードカバレッジの取得方法から、設定・しきい値管理までを初心者にも分かりやすく解説します。

コードカバレッジとは

コードカバレッジとは、「どれだけのコードがテストされているか」を示す指標です。

具体的には以下のような観点で測定されます。

  • statements(文)
  • branches(分岐)
  • functions(関数)
  • lines(行)

カバレッジレポートを見ることで、テストされていない箇所を特定できるため、品質改善に直結します。

Angular × Vitestでカバレッジを有効化する

必要パッケージのインストール

Vitestでコードカバレッジを利用するには、以下のパッケージが必要です。

npm install --save-dev @vitest/coverage-v8

これはV8エンジンベースの高速なカバレッジ計測を行うためのものです。

カバレッジ付きでテストを実行する

以下のコマンドでカバレッジを取得できます。

ng test --coverage

実行後、プロジェクト直下に coverage/ ディレクトリが生成されます。

coverage/Project
 └── index.html

この index.html をブラウザで開くと、視覚的にカバレッジを確認できます。

カバレッジレポートの見方

カバレッジレポートでは、以下の情報が確認できます。

ファイル単位のカバレッジ

  • 各ファイルごとのテスト網羅率
  • カラー表示(緑:OK、赤:未テスト)

ソースコード単位のカバレッジ

  • 実際のコードに対して
    • 実行された行
    • 実行されていない行
      がハイライト表示される

これにより、どこを追加でテストすべきか一目で分かります。

angular.jsonでカバレッジを常に有効化する

毎回 --coverage を付けるのが面倒な場合は、設定ファイルで常時有効にできます。

{
"projects": {
"your-project-name": {
"architect": {
"test": {
"builder": "@angular/build:unit-test",
"options": {
"coverage": true
}
}
}
}
}
}

これにより、ng test 実行時に自動でカバレッジが生成されます。

カバレッジのしきい値(threshold)を設定する

チーム開発では、「最低限の品質ライン」を決めることが重要です。

Angularでは、カバレッジの最低値を設定できます。

例:80%以上を必須にする

{
"coverageThresholds": {
"statements": 80,
"branches": 80,
"functions": 80,
"lines": 80
}
}

angular.jsonのtest > optionsに、この設定を行うと、カバレッジが80%未満の場合にテストが失敗扱いになります。

つまり、品質を強制できる仕組みになります。

カバレッジ対象ファイルの制御

不要なファイルを除外することで、より正確な指標を得られます。

主な設定項目

  • coverageInclude
  • coverageExclude
  • coverageReporters
  • coverageWatermarks

例:

{
"coverageReporters": ["html", "lcov"],
"coverageInclude": ["src/**/*.ts"]
}

これにより、CI連携(lcov)や可視化(html)も柔軟に対応できます。

カバレッジを上げるための実践ポイント

分岐(if/else)を重点的にテストする

branchesカバレッジは落ちやすいため、意識的にテストを書くことが重要です。

サービス・ロジック層を優先する

UIよりもロジックの方がカバレッジ向上に直結します。

テンプレートロジックも忘れない

AngularはHTML側にもロジックがあるため注意が必要です。

まとめ

Angular × Vitestのコードカバレッジは、以下の流れで導入できます。

  • パッケージをインストール
  • ng test --coverage を実行
  • coverage/ でレポート確認
  • angular.json で自動化
  • しきい値で品質を担保

コードカバレッジは単なる数値ではなく、品質改善のための指標です。

継続的に確認しながら、テストの質を高めていきましょう。