概要

JavaScriptテストフレームワークVitest 4.1が2026年5月1日にリリースされた。今回のリリースは「テスト整理」「ネイティブ実行」「AIエージェント最適化」の3つを主要テーマとして掲げており、Vite 8への完全対応も同時に提供される。VoidZeroがメンテナンスするVitestは、Jestと互換性のあるAPIを維持しながら、大規模プロジェクトでのパフォーマンスや開発者体験の向上を継続的に進めている。5万件のテストを持つプロダクションモノレポを対象にしたSitePointのベンチマークでは、コールドスタート・ウォッチモードの再実行・ピークメモリ使用量のいずれにおいてもJestを上回る結果が示されている。

テストタグとライフサイクルフックの強化

2025年10月から要望が挙がっていた機能として、Pythonのpytestマーカーに着想を得たテストタグ機能が搭載された。各テストにラベルを付与し、論理演算子やワイルドカードを用いて実行対象を柔軟に絞り込める。たとえば vitest --tags-filter='frontend && !flaky' と指定することで、フロントエンド向けテストのうち不安定なものを除外して実行できる。大規模コードベースでのテスト管理に大きく貢献する機能だ。

ライフサイクルフック面では、テストをコンテキストでラップするための aroundEacharoundAll が新たに追加された。また test.extend ビルダーパターンの型推論が改善され、カスタムフィクスチャを利用する際の型安全性が向上している。CIとの連携を強化する github-actions レポーターも導入され、テスト統計やフレイキーテストのハイライトを含むJobサマリーをGitHub Actions上で自動生成できるようになった。

ネイティブNode.js実行モード(実験的)

実験的機能として、Viteのモジュールランナーサンドボックスをバイパスする viteModuleRunner: false オプションが追加された。これを有効にすると、Node.jsのネイティブインポートが使用されるため、起動速度の向上と本番環境により近い挙動が期待できる。Node.js 22.18以降または23.6以降を使用している場合、ネイティブのTypeScriptストリッピングが追加設定なしで利用可能となる。Bunとも動作するが、現時点ではモジュールモックとカバレッジ機能はサポートされておらず、今後の対応が見込まれる。

AIエージェント向けのagentレポーター

AIコーディングエージェントによる開発ワークフローへの統合を意識した専用レポーター agent が追加された。AIエージェントがテスト実行結果を解析する際に消費するトークン数を削減することを目的に設計されており、LLMベースのコーディング支援ツール内でVitestを活用するユースケースを直接サポートする。

リリース後に確認された不具合

リリース直後に2件の問題が報告されている。1つ目は、カバレッジの無視ヒントに関するリグレッションで、@preserve アノテーションが必要となる挙動が確認された。2つ目は、更新されたViteのピア依存関係の記法によってYarn Classic(v1.x)での導入が壊れる問題だ。いずれも既知の問題として追跡されており、修正が進められている。