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による引数別モックとtoHaveBeenExhaustedvitest doctorが代替設定を試し性能ヒントを出す- レポーター出力の既定ディレクトリを
.vitestに集約。HTML はsingleFileで単一ファイル化可 - Fake timers が Temporal API を対象に含める