為何選擇 Vitest
提示
本指南假設您已熟悉 Vite。若要進一步了解,建議閱讀 為何選擇 Vite 指南,以及觀看 使用 ViteJS 打造下一代前端工具 的直播,其中 Evan You 進行了示範並解釋了主要概念。
對於 Vite 原生測試執行器的需求
Vite 憑藉其對常見網頁模式的即開即用支援、諸如 glob 導入和 SSR 原生功能等特性,以及眾多外掛和整合,正在建立一個充滿活力的生態系統。其開發與建構流程是成功的關鍵。對於文件,有幾種基於 SSG 的替代方案由 Vite 提供支援。然而,Vite 在單元測試方面的發展一直不明確。現有的選項,例如 Jest,是在不同的背景下創建的。Jest 和 Vite 之間存在大量重複,迫使用戶配置兩個不同的處理流程。
透過在測試期間使用 Vite 開發伺服器來轉換檔案,可以建立一個簡潔的測試執行器。這個執行器無需處理原始檔案轉換的複雜性,能專注於在測試期間提供最佳的開發者體驗 (DX)。這個測試執行器能透過 vite.config.js
使用與您的應用程式相同的配置,並在開發、建構和測試期間共享一個共同的轉換流程。它可以使用相同的外掛 API 進行擴展,讓您和工具維護者能夠提供與 Vite 的一流整合。這是一個從一開始就考慮到 Vite 而構建的工具,它充分利用了 Vite 在開發者體驗 (DX) 方面的改進,例如即時熱模組重載 (HMR)。這就是 Vitest,一個由 Vite 提供支援的下一代測試框架。
鑑於 Jest 的廣泛採用,Vitest 提供了一個相容的 API,讓您可以在大多數專案中將其作為直接替換方案使用。它還包含了設定單元測試時所需的最常見功能(例如模擬、快照、覆蓋率)。Vitest 非常注重效能,並使用 Worker 線程來盡可能地並行運行。在某些移植案例中,測試運行速度甚至快了一個數量級。預設啟用監看模式,這與 Vite 推動開發優先體驗的方式保持一致。即使在開發者體驗 (DX) 方面有諸多改進,Vitest 仍透過仔細選擇其依賴項(或直接內嵌所需程式碼片段)來保持輕量級。
Vitest 旨在成為 Vite 專案的首選測試執行器,即使對於不使用 Vite 的專案,它也是一個可靠的替代方案。
繼續閱讀 入門指南
Vitest 與 X 有何不同?
您可以查看 比較 部分,了解 Vitest 與其他類似工具的差異。