Skip to content
Latchkey

uvu vs Vitest: 極小ランナーかフルフレームワークか?

uvuは機能が最小限の、きわめて小さく高速なテストランナーです。Vitestはモックやスナップショットやカバレッジを備えたViteベースの機能豊富なフレームワークです。

uvuは依存関係が少なく、生の速度と高速な起動に焦点を当てた極小のランナーで、最小限のAPIを持ち、組み込みのモックやスナップショットやカバレッジはありません - 必要に応じてツールを追加します。VitestはViteの設定を再利用するフルフレームワークで、Jest風のAPI、watch mode、モック、スナップショット、カバレッジを提供し、モダンなVite/TSアプリに向いています。uvuは最小限のフットプリントと速度を追求し、Vitestは機能と統合を追求します。

uvuVitest
サイズ / 起動極小、非常に高速大きめ、高速(Vite)
機能最小限モック、スナップショット、カバレッジ
TS / Vite手動セットアップ第一級のサポート
watch modeなしあり(HMR)
最適な用途小さなライブラリ、速度Vite/TSアプリ

CIでは

uvuは、最小限の依存関係と可能な限り高速な起動を求め、TS、カバレッジ、モックを自分で組み込むことを受け入れる小さなライブラリに最適です。Vitestはカバレッジとスナップショットを組み込みで備えた、統合されたフル機能のランナーを求めるアプリに向いています。どちらもCIで並列化します。ミニマリズムならuvu、機能ならVitestを選びましょう。

高速化する

依存関係をキャッシュし、テストをjob間でシャーディングして全体の実行時間を短縮しましょう。どちらもCIランナー上で動作し、より高速なマネージドランナーはテスト実行と変換処理を短縮します。

結論

小さなフットプリントと高速な起動を重視する小さなライブラリを書くなら: uvu。モック、スナップショット、カバレッジ、watch modeが欲しいViteやTypeScriptのアプリを構築するなら: Vitest。ほとんどのアプリチームはVitestを選び、uvuはミニマルなライブラリやマイクロベンチマークに向いています。

関連ガイド