Vitest 5 は性能を主眼にしたメジャー。vitest-dev/benchmarks の参照アプリでは、deps-heavy(vmThreads)で 1.59s → 0.74s(−53%)、enterprise-monolith(1,280 モジュール、forks isolated)で 7.24s → 5.83s(−19%)など、vm プール・Browser Mode・大規模 isolated で短縮が目立つ。

#移行・破壊的変更

  • 要件:Vite >= 6.4.0、Node.js >= 22.12.0
  • clearMocks の既定が true。各テスト前に vi.clearAllMocks() し、実装は残しつつ呼び出し履歴だけ消す。旧挙動は clearMocks: false
  • インライン test.projects はルート設定を既定で継承(旧の extends: true 相当)。入れ子 projects と -p フィルタに対応
  • 非同期アサーション(resolves / rejects / toMatchFileSnapshot)を await しないと失敗
  • bench はトップレベル import ではなく、ベンチファイル内 test() のフィクスチャ経由
ts
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    clearMocks: false, // v4 相当の履歴保持が必要な場合のみ
  },
})

#主な追加

  • Browser Mode 向け Trace View(browser.traceView)。DOM スナップショットでステップ再生
  • vi.when による引数別モックと toHaveBeenExhausted
  • vitest doctor が代替設定を試し性能ヒントを出す
  • レポーター出力の既定ディレクトリを .vitest に集約。HTML は singleFile で単一ファイル化可
  • Fake timers が Temporal API を対象に含める

#参考文献