Dlaczego Vitest
NOTE
Ten przewodnik zakłada znajomość Vite. Dobrym punktem wyjścia jest przeczytanie Przewodnika Dlaczego Vite oraz obejrzenie transmisji Frontendowe narzędzia nowej generacji z ViteJS, podczas której Evan You zaprezentował demo wyjaśniające kluczowe koncepcje.
Potrzeba natywnego środowiska testowego dla Vite
Wbudowane wsparcie Vite dla popularnych wzorców webowych, funkcje takie jak importy glob i prymitywy SSR oraz liczne wtyczki i integracje sprzyjają dynamicznemu ekosystemowi. Sposób, w jaki Vite radzi sobie z developmentem i budowaniem, jest kluczem do jego sukcesu. W przypadku dokumentacji istnieje kilka alternatyw opartych na SSG (Static Site Generation) wykorzystujących Vite. Sytuacja z testami jednostkowymi w Vite nie była jednak tak oczywista. Istniejące opcje, takie jak Jest, zostały stworzone w innym kontekście. Istnieje wiele powielających się funkcjonalności między Jest a Vite, co zmusza użytkowników do konfigurowania dwóch różnych potoków.
Wykorzystanie serwera deweloperskiego Vite do transformacji plików podczas testowania umożliwia stworzenie prostego narzędzia do uruchamiania testów. Dzięki temu nie musi ono zajmować się złożonością transformacji plików źródłowych i może skupić się wyłącznie na zapewnieniu najlepszego doświadczenia programistycznego (DX) podczas testowania. Narzędzie do uruchamiania testów, które używa tej samej konfiguracji co Twoja aplikacja (zdefiniowanej w vite.config.js
), dzieląc wspólny potok transformacji podczas developmentu, budowania i testowania. Można je rozszerzać za pomocą tego samego API wtyczek, co pozwala Tobie i twórcom Twoich narzędzi zapewnić integrację pierwszej klasy z Vite. Narzędzie tworzone z myślą o Vite od samego początku, wykorzystując jego ulepszenia w DX, takie jak natychmiastowe Hot Module Reload (HMR). To jest Vitest, błyskawicznie szybki framework do testów jednostkowych oparty na Vite.
Mając na uwadze ogromną popularność Jest, Vitest zapewnia kompatybilne API, które pozwala na użycie go jako zamiennika w większości projektów. Zawiera również najczęściej wymagane funkcje podczas konfigurowania testów jednostkowych, takie jak mockowanie, snapshoty i pokrycie kodu. Vitest bardzo dba o wydajność i używa wątków roboczych (Worker threads), aby uruchamiać testy równolegle w jak największym stopniu. W niektórych przypadkach odnotowano przyspieszenie działania testów o rząd wielkości. Tryb obserwowania zmian (watch mode) jest domyślnie włączony, co jest zgodne z podejściem Vite stawiającym na pierwszym miejscu doświadczenie programistyczne. Pomimo wszystkich tych ulepszeń w DX, Vitest pozostaje lekki, starannie dobierając swoje zależności lub bezpośrednio wstawiając potrzebne fragmenty kodu.
Vitest ma na celu pozycjonowanie się jako preferowane narzędzie do uruchamiania testów dla projektów Vite, a także jako solidna alternatywa dla projektów, które nie używają Vite.
Kontynuuj czytanie w Przewodniku dla początkujących
Czym Vitest różni się od X?
Możesz sprawdzić sekcję Porównania, aby uzyskać więcej szczegółów na temat różnic między Vitest a innymi podobnymi narzędziami.