功能特色
- Vite 的設定、轉譯器、解析器與外掛
- 測試時可直接沿用你應用程式的設定!
- 聰明又即時的監看模式,像測試版的 HMR!
- 支援 Vue、React、Svelte、Lit、Marko 等元件測試
- 內建 TypeScript / JSX 支援
- 以 ESM 為優先,支援頂層 await
- 透過 Tinypool 多執行緒(Workers)平行測試
- 內建 Tinybench 支援效能基準測試
- 支援測試與測試集的篩選、逾時、平行執行
- 支援 Workspace
- 相容 Jest 的 Snapshot 快照功能
- 內建 Chai 斷言庫,並支援 Jest expect API
- 內建 Tinyspy 支援 mock
- 支援 happy-dom 或 jsdom 進行 DOM 模擬
- 支援瀏覽器模式,可在瀏覽器中執行元件測試
- 支援 v8 或 istanbul 進行程式碼覆蓋率分析
- 類似 Rust 的原始碼內測試(in-source testing)
- 支援型別測試(expect-type)
- 支援分片(Sharding)
透過影片學習如何撰寫第一個測試
測試、開發、建置共用設定
Vite 的設定、轉譯器、解析器與外掛,測試時可直接沿用你應用程式的設定。
更多請參考「設定 Vitest」。
監看模式(Watch Mode)
$ vitest
當你修改原始碼或測試檔案時,Vitest 會聰明地搜尋模組關聯,只重新執行相關的測試,就像 Vite 的 HMR 一樣!
Vitest 在開發環境預設啟用監看模式,在 CI 環境(有 process.env.CI)則預設為執行一次。你也可以用 vitest watch
或 vitest run
明確指定模式。
用 --standalone
旗標啟動 Vitest,可讓它在背景持續執行,只有檔案變動時才會執行測試。只有當測試檔案有引用的原始碼變動時,才會重新執行測試。