為什麼使用 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 與其他類似工具的差異詳情。