スポンサーリンク

AngularのVitestとangular.jsonの設定完全ガイド|テスト環境の仕組みを解説

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

AngularのVitestとangular.jsonの設定完全ガイド|テスト環境の仕組みを解説

Angularでは、ユニットテスト環境としてVitestが標準で利用されるようになり、従来のKarma構成から大きく進化しました。

しかし実際には、

  • angular.jsonの設定がよく分からない
  • Vitestの設定はどこで管理されているのか不明
  • カスタマイズ方法が分かりにくい

と感じる人も多いです。

本記事では、Angular公式ドキュメントをベースに、Vitestとangular.jsonの関係と設定方法を初心者向けにわかりやすく解説します。

この記事でわかること

  • Vitestとangular.jsonの役割
  • angular.jsonでできる設定
  • カスタマイズ方法

Vitestとangular.jsonの関係

重要なポイント

Angularでは、Vitestの設定はangular.jsonから管理されるのが特徴です。

通常のVitestとは違い、

  • vitest.config.tsに直接書くのではなく
  • angular.json経由で設定する

という仕組みになっています。

なぜangular.jsonで管理するのか

Angular CLIが以下を自動で制御するためです。

  • ビルド設定
  • テスト対象ファイル
  • 実行環境

そのため、開発者は細かい設定を意識しなくても動く設計になっています。

angular.jsonのtest設定

angular.jsonには、テスト用の設定があります。

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

このtestが、Vitestの実行設定になります。

angular.jsonで設定できる項目

Angularでは以下の設定をカスタマイズできます。

include

"include": ["**/*.spec.ts"]

テスト対象ファイルを指定します。

デフォルトでは .spec.ts.test.ts が対象です。

exclude

"exclude": ["**/e2e/**"]

テスト対象から除外するファイルを指定します。

setupFiles

"setupFiles": ["src/test-setup.ts"]

テスト実行前に読み込まれるファイルです。

用途:

  • polyfill
  • グローバルモック
  • 共通初期化処理

providersFile

"providersFile": "src/test-providers.ts"

AngularのDI(依存注入)をグローバルに設定できます。

例えば:

  • HttpClientのモック
  • 共通サービス

を一括設定できます。

coverage

"coverage": true

カバレッジ(テスト網羅率)を取得します。

CLIからも実行可能です。

ng test --coverage

コードカバレッジについては、詳細は「Angular × Vitestでコードカバレッジを測定する方法|設定・確認・しきい値まで完全解説」で解説しています。

browsers

"browsers": ["chromium"]

通常はコンソール環境で実行結果などが表示されますが、ブラウザでテストを実行することも可能です。

  • Playwright
  • WebdriverIO

などと連携できます。

Vitest設定ファイルは必要?

基本は不要

Angular CLIが内部でVitest設定を生成するため、通常は不要です。

カスタマイズしたい場合

以下のように指定できます。

"runnerConfig": "vitest.config.ts"

またはCLIで生成できます。

ng generate config vitest

ただし注意点があります。

  • Angularが一部設定を上書きする
  • 完全自由ではない

まとめ

Angular のテスト環境は、従来とは大きく異なります。

  • Vitestが標準テストランナー
  • angular.jsonで設定を管理

重要なポイントはこれです。