tool
Vitest
Vite のパイプラインをそのまま使うユニットテストフレームワーク。Jest 互換 API を持ちつつ ESM / TypeScript / JSX をビルド設定なしで実行できる。設定の指定漏れや vi.mock のホイスティングで詰まりやすい。
問題一覧(4)
Vitest で「describe is not defined」が解決できない(globals 未設定)
Vitest は既定で describe / it / expect をグローバルに公開しない。test.globals を true にするか、各ファイルで vitest から読み込めば describe is not defined を解消できる。
更新: 2026-07-18、タグ: globals、config
Vitest で「document is not defined」が解決できない(jsdom 環境未設定)
Vitest の既定環境は node なので、document や window を触ると document is not defined になる。test.environment を jsdom か happy-dom にすれば DOM API が使えるようになる。
更新: 2026-06-30、タグ: jsdom、environment
Vitest で「Cannot find module」とパスエイリアス(@/)が解決できない
tsconfig の paths は型解決用で、Vitest(Vite)の実行時には効かない。テストで @/ が Cannot find module になるのは resolve.alias 未設定が主因。alias を定義するか vite-tsconfig-paths を入れる。
更新: 2026-06-30、タグ: alias、vite、tsconfig-paths
Vitest の vi.mock が効かない(巻き上げと factory のスコープ)
vi.mock はファイル先頭へ巻き上げられて import より前に実行されるため、外側スコープの変数を factory 内で参照すると失敗する。vi.hoisted を使うか、巻き上げない vi.doMock に切り替えると解決する。
更新: 2026-06-23、タグ: vi-mock、mock、hoisting