Warum Vitest
HINWEIS
Dieser Leitfaden setzt voraus, dass Sie mit Vite vertraut sind. Eine gute Möglichkeit, mehr zu erfahren, ist das Lesen des Warum Vite Leitfadens und Frontend-Tooling der nächsten Generation mit ViteJS, ein Stream, in dem Evan You eine Demo gab, in der er die Hauptkonzepte erläuterte.
Die Notwendigkeit eines Vite-nativen Test-Runners
Die direkte Unterstützung von Vite für gängige Webmuster, Funktionen wie Glob-Importe und SSR-Primitive sowie die vielen Plugins und Integrationen fördern ein lebendiges Ökosystem. Seine Entwicklungs- und Build-Prozesse sind der Schlüssel zum Erfolg. Für die Dokumentation gibt es mehrere SSG-basierte Alternativen, die von Vite unterstützt werden. Der Bereich Unit-Testing war bei Vite jedoch bisher nicht klar definiert. Bestehende Optionen wie Jest wurden in einem anderen Kontext entwickelt. Es gibt viele Redundanzen zwischen Jest und Vite, was Benutzer zwingt, zwei verschiedene Pipelines zu konfigurieren.
Die Verwendung des Vite-Entwicklungsservers zur Transformation Ihrer Dateien während des Testens ermöglicht es, einen einfachen Runner zu erstellen, der sich nicht mit der Komplexität der Transformation von Quelldateien befassen muss und sich ausschließlich auf die Bereitstellung der besten DX (Developer Experience) während des Testens konzentrieren kann. Ein Test-Runner, der die gleiche Konfiguration Ihrer App verwendet (über vite.config.js
) und eine gemeinsame Transformationspipeline für Entwicklung, Build und Tests nutzt. Er ist mit der gleichen Plugin-API erweiterbar, die es Ihnen und den Entwicklern Ihrer Tools ermöglicht, eine erstklassige Integration mit Vite zu realisieren. Ein Tool, das von Grund auf für Vite entwickelt wurde und DX-Verbesserungen wie das sofortige Hot Module Reload (HMR) nutzt. Das ist Vitest, ein blitzschnelles Unit-Test-Framework, das auf Vite basiert.
In Anbetracht der weit verbreiteten Nutzung von Jest bietet Vitest eine kompatible API, die es Ihnen ermöglicht, es in den meisten Projekten als Drop-in-Ersatz zu verwenden. Es enthält auch die gebräuchlichsten Funktionen, die beim Einrichten Ihrer Unit-Tests erforderlich sind (Mocking, Snapshots, Coverage). Vitest legt großen Wert auf die Leistung und verwendet Worker-Threads, um so viel wie möglich parallel auszuführen. Bei einigen Projekten wurde eine um Größenordnungen schnellere Testausführung festgestellt. Der Watch-Modus ist standardmäßig aktiviert und entspricht der Art und Weise, wie Vite eine Dev-First-Erfahrung fördert. Trotz all dieser Verbesserungen der Developer Experience bleibt Vitest schlank, indem es seine Abhängigkeiten sorgfältig auswählt (oder benötigte Teile direkt inline einfügt).
Vitest hat das Ziel, sich als der bevorzugte Test-Runner für Vite-Projekte und als solide Alternative auch für Projekte zu etablieren, die Vite nicht verwenden.
Weitere Informationen finden Sie im Leitfaden für die ersten Schritte.
Worin unterscheidet sich Vitest von X?
Weitere Informationen darüber, wie sich Vitest von anderen ähnlichen Tools unterscheidet, finden Sie im Abschnitt Vergleiche.