Pourquoi Vitest
REMARQUE
Ce guide suppose que vous connaissez Vite. Pour en savoir plus, vous pouvez consulter le Guide Pourquoi Vite et Outils frontend de nouvelle génération avec ViteJS, une présentation en direct où Evan You a expliqué les principaux concepts.
La nécessité d'un exécuteur de tests natif pour Vite
La prise en charge native par Vite des modèles web courants, des fonctionnalités telles que les importations globales (glob) et les primitives SSR, ainsi que ses nombreux plugins et intégrations favorisent un écosystème dynamique. Son approche du développement et de la construction est la clé de son succès. Pour la documentation, il existe plusieurs alternatives basées sur SSG alimentées par Vite. Cependant, l'approche de Vite concernant les tests unitaires n'était pas clairement définie. Les options existantes comme Jest ont été créées dans un contexte différent. Il existe une duplication importante entre Jest et Vite, ce qui oblige les utilisateurs à configurer deux pipelines différents.
L'utilisation du serveur de développement Vite pour transformer vos fichiers pendant les tests permet de créer un exécuteur simple. Cet exécuteur n'a pas besoin de gérer la complexité de la transformation des fichiers sources et peut se concentrer uniquement sur la fourniture de la meilleure expérience développeur (DX) pendant les tests. Un exécuteur de tests qui utilise la même configuration que votre application (via vite.config.js
) partage un pipeline de transformation commun pendant le développement, la construction et les tests. Il est extensible via la même API de plugins, ce qui vous permet, ainsi qu'aux mainteneurs de vos outils, de fournir une intégration de première classe avec Vite. Un outil conçu dès le départ avec Vite à l'esprit, tirant parti de ses améliorations en matière d'expérience développeur (DX), comme son rechargement de module à chaud (HMR) instantané. C'est Vitest, un framework de test unitaire ultra-rapide propulsé par Vite.
Étant donné l'adoption massive de Jest, Vitest fournit une API compatible qui vous permet de l'utiliser comme un remplacement direct dans la plupart des projets. Il inclut également les fonctionnalités les plus courantes requises lors de la configuration de vos tests unitaires (mocking, snapshots, couverture). Vitest accorde une grande importance aux performances et utilise des threads Worker pour exécuter autant de tests que possible en parallèle. Dans certains cas, les tests s'exécutent plusieurs fois plus rapidement. Le mode Watch est activé par défaut, s'alignant sur l'approche centrée sur le développement de Vite. Malgré toutes ces améliorations en matière d'expérience développeur (DX), Vitest reste léger en choisissant soigneusement ses dépendances - ou en internalisant directement les éléments nécessaires.
Vitest vise à se positionner comme l'exécuteur de tests de choix pour les projets Vite, et comme une alternative solide même pour les projets n'utilisant pas Vite.
Continuez 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 la façon dont Vitest diffère des autres outils similaires.