Pourquoi Vitest
NOTE
Ce guide suppose que vous êtes familier avec Vite. Pour approfondir vos connaissances, nous vous recommandons de consulter le Guide Pourquoi Vite et de visionner la diffusion Outils frontend de nouvelle génération avec ViteJS, où Evan You présente les concepts fondamentaux.
Le besoin d'un exécuteur de tests natif pour Vite
Le support natif de Vite pour les modèles web courants, ses fonctionnalités telles que les importations par motif et les primitives SSR, ainsi que sa riche collection de plugins et d'intégrations, alimentent un écosystème dynamique. Son approche du développement et de la construction est la clé de son succès. Pour la documentation, plusieurs alternatives basées sur SSG et propulsées par Vite existent. Cependant, la prise en charge des tests unitaires par Vite n'a pas été clairement définie. Les options existantes comme Jest ont été conçues dans un contexte différent. Il en résulte une duplication significative entre Jest et Vite, obligeant les utilisateurs à configurer deux pipelines distincts.
L'utilisation du serveur de développement Vite pour transformer vos fichiers pendant les tests permet de créer un exécuteur simple. Celui-ci n'a pas besoin de gérer la complexité de la transformation des fichiers source et peut se concentrer uniquement sur l'optimisation de l'expérience développeur (DX) pendant les tests. Il s'agit d'un exécuteur de tests qui utilise la même configuration que votre application (via vite.config.js
), partageant un pipeline de transformation commun pour le développement, la construction et les tests. Il est extensible grâce à la même API de plugin qui vous permet, ainsi qu'aux mainteneurs de vos outils, de fournir une intégration de première classe avec Vite. C'est un outil conçu dès le départ avec Vite à l'esprit, tirant parti de ses améliorations en matière de DX, comme son rechargement à chaud instantané des modules (HMR). C'est Vitest, un framework de test de nouvelle génération propulsé par Vite.
Compte tenu de l'adoption massive de Jest, Vitest offre une API compatible qui permet de l'utiliser comme un remplacement direct dans la plupart des projets. Il inclut également les fonctionnalités les plus courantes nécessaires à la configuration de vos tests unitaires (mocking, snapshots, couverture). Vitest accorde une grande importance à la performance et utilise des threads de travail pour exécuter autant de tests que possible en parallèle. Dans certains cas, les tests s'exécutent un ordre de grandeur plus rapidement. Le mode de surveillance est activé par défaut, s'alignant sur l'approche de Vite qui privilégie une expérience axée sur le développement. Même avec toutes ces améliorations en matière de DX, Vitest reste léger en sélectionnant soigneusement ses dépendances (ou en intégrant directement les éléments nécessaires).
Vitest vise à s'établir comme l'exécuteur de tests de référence pour les projets Vite, et comme une alternative solide même pour les projets n'utilisant pas Vite.
Poursuivez votre lecture dans le Guide de démarrage
En quoi Vitest est-il différent de X ?
Vous pouvez consulter la section Comparaisons pour plus de détails sur les différences entre Vitest et d'autres outils similaires.