Skip to content

カバレッジ基準

20.4.1. 最小カバレッジ

TQS 認証のために、プロジェクトは以下の最小カバレッジ基準を満たさなければなりません。

項目最小基準説明
ライン(Lines)80%実行されたコード行の比率
ブランチ(Branches)70%条件分岐(if/else、switch)のカバー比率
関数(Functions)80%呼び出された関数の比率
ステートメント(Statements)80%実行された文の比率
  • 新規プロジェクトは初期から基準を満たすようにテストを作成します。
  • 既存プロジェクトはカバレッジを段階的に向上させますが、新規コードについては基準を必ず満たさなければなりません。
  • カバレッジ数値が高くても、意味のないテスト(単純な呼び出しのみのテスト)は認められません。

20.4.2. カバレッジレポート

vitest.config.ts にカバレッジプロバイダーとレポート形式を設定します。

typescript
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    coverage: {
      provider: 'v8',
      reporter: ['text', 'html', 'lcov'],
      reportsDirectory: './coverage',
      include: ['src/**/*.{ts,vue}'],
      exclude: [
        'src/**/*.d.ts',
        'src/**/*.test.ts',
        'src/**/*.spec.ts',
        'src/**/index.ts',
        'src/types/**',
        'src/constants/**',
        'src/auto-generated/**',
      ],
    },
  },
})
プロバイダー特徴
v8V8 エンジン内蔵カバレッジ、高速、Vitest デフォルト
istanbul精密な計測、広いエコシステム互換性
レポート形式用途
textターミナルで即時確認
htmlブラウザでファイル別の詳細カバレッジを確認
lcovCI ツールおよび外部サービス(SonarQube、Codecov など)との連携
  • TQS 基準のプロバイダーは v8 をデフォルトとして使用します。
  • texthtmllcov の 3 種類のレポートをすべて生成することを推奨します。

20.4.3. 除外対象

カバレッジ測定から以下のファイルを除外します。

除外対象理由
型定義ファイル(*.d.tsランタイムコードではない
定数ファイル(constants/ロジックを含まない値の定義
自動生成コード(auto-generated/手動管理の対象ではない
設定ファイル(vite.config.tsvitest.config.ts など)ビルド/テスト設定専用
Re-export ファイル(index.ts単純な再エクスポートのみ実行
テストファイル(*.test.ts*.spec.tsテストコード自体はカバレッジ対象ではない
  • 除外対象は vitest.config.tscoverage.exclude 配列に明示します。
  • 除外対象が追加される場合、チーム内で合意を得てから設定ファイルを更新します。

20.4.4. CI 統合

CI パイプラインでカバレッジ閾値未達時にビルドを失敗処理します。

typescript
// vitest.config.ts
export default defineConfig({
  test: {
    coverage: {
      provider: 'v8',
      thresholds: {
        lines: 80,
        branches: 70,
        functions: 80,
        statements: 80,
      },
    },
  },
})

thresholds を設定すると、カバレッジが基準未満の場合に Vitest が異常終了コードを返します。CI パイプラインでこれを検知してビルドを失敗処理します。

yaml
# CI パイプライン例(GitHub Actions)
- name: Run tests with coverage
  run: yarn test:coverage

- name: Upload coverage report
  uses: actions/upload-artifact@v4
  with:
    name: coverage-report
    path: coverage/
  • thresholds の値は 20.4.1 節の最小カバレッジ基準と同一に設定します。
  • カバレッジレポートは CI アーティファクトとして保管し、履歴を追跡します。
  • 外部サービス(Codecov、SonarQube など)と連携してカバレッジ推移を可視化することを推奨します。

TIENIPIA QUALIFIED STANDARD