為什麼使用 Vitest
注意
本指南假設您已熟悉 Vite。 瞭解更多資訊的好方法是閱讀 Why Vite Guide,以及 Next generation frontend tooling with ViteJS,這是一個由 Evan You 進行示範的直播,其中解釋了主要概念。
對 Vite 原生測試執行器的需求
Vite 對於常見 Web 模式的即時支援、諸如全域導入 (glob imports) 和 SSR 基礎功能等特性,以及其眾多的外掛程式和整合,正在孕育一個蓬勃發展的生態系統。 它的開發和建置流程是其成功的關鍵。 對於文件,有幾個由 Vite 驅動的基於 SSG 的替代方案。 然而,Vite 的單元測試情況一直不明朗。 諸如 Jest 之類的現有選項是在不同的背景下創建的。 Jest 和 Vite 之間存在大量重複,迫使使用者設定兩個不同的流程。
在測試期間使用 Vite 開發伺服器轉換您的檔案,可以創建一個簡單的執行器。 這個執行器無需處理轉換原始檔案的複雜性,而可以專注於在測試期間提供最佳的 DX(開發者體驗)。 一個使用與您應用程式相同設定(通過 vite.config.js
)的測試執行器,在開發、建置和測試時共享一個統一的轉換流程。 它可以透過相同的外掛 API 進行擴充,使您和您的工具維護者能夠提供與 Vite 的一流整合。 這是一個從一開始就為 Vite 打造的工具,充分利用了 Vite 在 DX 方面的改進,例如其即時熱模組重載 (HMR)。這就是 Vitest,一個由 Vite 驅動的下一代測試框架。
鑑於 Jest 的廣泛使用,Vitest 提供了一個相容的 API,允許您在大多數專案中將其作為替代品。 它還包括設定單元測試時所需的最常見功能(模擬、快照、覆蓋率)。 Vitest 非常關心效能,並使用 Worker 執行緒儘可能並行地運行。 某些移植版本已讓測試執行速度提高了十倍。 預設啟用監聽模式,這與 Vite 提倡的開發優先體驗相一致。 即使在開發者體驗方面進行了諸多改進,Vitest 仍然通過仔細選擇其依賴項(或直接內聯所需的程式碼片段)來保持輕量級。
Vitest 旨在將自己定位為 Vite 專案的首選測試執行器,並且即使對於不使用 Vite 的專案,也是一個可靠的替代方案。
請繼續閱讀 入門指南
Vitest 與 X 有何不同?
您可以查看 比較 部分,以瞭解 Vitest 與其他類似工具的差異詳情。