markdown
# Vitest の必要性
:::tip NOTE
このガイドは、あなたが Vite に精通していることを前提としています。より詳しく学ぶには、[Vite を使う理由ガイド](https://vitejs.dev/guide/why.html)や、[Evan You](https://twitter.com/youyuxi) 氏が主要なコンセプトを説明するライブストリーム [Next generation frontend tooling with ViteJS](https://www.youtube.com/watch?v=UJypSr8IhKY) を参照することをお勧めします。
:::
## Vite ネイティブテストランナーの必要性 {#the-need-for-a-vite-native-test-runner}
Vite は、一般的な Web パターンの標準サポート、グロブインポートや SSR プリミティブなどの機能、そして豊富なプラグインと統合により、活発なエコシステムを形成しています。開発とビルドにおける取り組みが、その成功の鍵となっています。ドキュメント作成においては、Vite を利用した SSG (Static Site Generator) ベースの代替手段がいくつか存在します。しかし、Vite のユニットテストの状況は明確ではありませんでした。[Jest](https://jestjs.dev/) のような既存のオプションは、異なるコンテキストで開発されました。Jest と Vite の間には多くの重複があり、ユーザーは 2 つの異なるパイプラインを構成する必要がありました。
テストの際に Vite 開発サーバーを使用してファイルを変換することで、ソースファイルの変換の複雑さを意識することなく、テストにおける最高の DX (Developer Experience) の提供に専念できるシンプルなランナーを作成できます。アプリの同じ構成 (`vite.config.js` 経由) を使用し、開発、ビルド、テスト時に共通の変換パイプラインを共有するテストランナー。これは、あなたとツールのメンテナーが Vite との最適な統合を提供できる同じプラグイン API で拡張可能です。最初から Vite を念頭に置いて構築され、インスタント Hot Module Reload (HMR) のような DX の改善を活用するツール。これが Vitest であり、Vite を活用した非常に高速なユニットテストフレームワークです。
Jest が広く採用されていることを考えると、Vitest は互換性のある API を提供し、ほとんどのプロジェクトでそのまま置き換えとして使用できます。また、ユニットテストの設定に必要な一般的な機能 (モック、スナップショット、カバレッジ) も含まれています。Vitest はパフォーマンスを非常に重視しており、可能な限り並行して実行するために Worker スレッドを使用します。一部の環境では、テストの実行が大幅に高速化されています。監視モードはデフォルトで有効になっており、Vite が推進する開発者体験を重視したアプローチに沿っています。DX のこれらのすべての改善にもかかわらず、Vitest は依存関係を慎重に選択 (または必要な部分を直接インライン化) することで軽量を維持しています。
**Vitest は、Vite プロジェクトにとって最適なテストランナーとしての地位を確立し、Vite を使用していないプロジェクトにとっても信頼性の高い代替手段となることを目指しています。**
[入門ガイド](./index) で続きをお読みください。
## Vitest は X とどのように異なりますか? {#how-is-vitest-different-from-x}
Vitest が他の類似ツールとどのように異なるかについての詳細は、[比較](./comparisons) セクションをご覧ください。