Démarrer avec Vitest
Vue d’ensemble
Vitest est un framework de test de nouvelle génération alimenté par Vite.
Vous pouvez en apprendre davantage sur la logique du projet dans la section Pourquoi Vitest.
Essayer Vitest en ligne
Vous pouvez essayer Vitest en ligne sur StackBlitz. Il exécute Vitest directement dans le navigateur, et il est presque identique à la configuration locale mais ne nécessite aucune installation sur votre machine.
Ajouter Vitest à votre projet
Il est recommandé d’installer une copie de vitest
dans votre package.json
, en utilisant l’une des méthodes énumérées ci-dessus. Cependant, si vous préférez exécuter vitest
directement, vous pouvez utiliser npx vitest
(l’outil npx
est fourni avec npm et Node.js).
L’outil npx
exécutera la commande spécifiée. Par défaut, npx
vérifiera d’abord si la commande existe dans les binaires du projet local. Si elle n’est pas trouvée là-bas, npx
recherchera dans le $PATH du système et l’exécutera si elle est trouvée. Si la commande n’est pas trouvée dans les deux emplacements, npx
l’installera dans un emplacement temporaire avant exécution.
Écriture de tests
Comme exemple, nous allons écrire un simple test qui vérifie la sortie d’une fonction qui ajoute deux nombres.
Ensuite, pour exécuter le test, ajoutez la section suivante à votre package.json
:
Enfin, exécutez npm run test
, yarn test
ou pnpm test
, selon votre gestionnaire de paquets, et Vitest imprimera ce message :
Pour en savoir plus sur l’utilisation de Vitest, consultez la section API.
Configuration de Vitest
L’un des principaux avantages de Vitest est sa configuration unifiée avec Vite. Si présent, vitest
lira votre vite.config.ts
racine pour s’aligner sur les plugins et la configuration de votre application Vite. Par exemple, votre configuration resolve.alias et plugins fonctionnera immédiatement. Si vous souhaitez une configuration différente pendant les tests, vous pouvez :
- Créer
vitest.config.ts
, qui aura une priorité plus élevée - Passer l’option
--config
à la CLI, par exemplevitest --config ./path/to/vitest.config.ts
- Utiliser
process.env.VITEST
ou la propriétémode
surdefineConfig
(qui sera définie surtest
si non remplacée) pour appliquer conditionnellement une configuration différente dansvite.config.ts
Vitest prend en charge les mêmes extensions pour votre fichier de configuration que Vite : .js
, .mjs
, .cjs
, .ts
, .cts
, .mts
. Vitest ne prend pas en charge l’extension .json
.
Si vous n’utilisez pas Vite comme outil de construction, vous pouvez configurer Vitest en utilisant la propriété test
dans votre fichier de configuration :
Si vous utilisez déjà Vite, ajoutez la propriété test
dans votre configuration Vite. Vous devrez également ajouter une référence aux types Vitest en utilisant une directive triple slash en haut de votre fichier de configuration.
Consultez la liste des options de configuration dans la Référence de configuration
Support des espaces de travail
Exécutez différentes configurations de projet à l’intérieur du même projet avec Vitest Workspaces. Vous pouvez définir une liste de fichiers et de dossiers qui définissent votre espace de travail dans le fichier vitest.workspace
. Le fichier prend en charge les extensions js
/ts
/json
. Cette fonctionnalité fonctionne très bien avec les configurations monorepo.
Interface en ligne de commande
Dans un projet où Vitest est installé, vous pouvez utiliser le binaire vitest
dans vos scripts npm, ou l’exécuter directement avec npx vitest
. Voici les scripts npm par défaut dans un projet Vitest généré :
Pour exécuter les tests une seule fois sans surveiller les changements de fichier, utilisez vitest run
. Vous pouvez spécifier des options CLI supplémentaires telles que --port
ou --https
. Pour une liste complète des options CLI, exécutez npx vitest --help
dans votre projet.
Pour en savoir plus sur l’Interface en ligne de commande.
Intégrations IDE
Nous avons également fourni une extension officielle pour Visual Studio Code afin d’améliorer votre expérience de test avec Vitest.
Installer depuis le Marketplace VS Code
Pour en savoir plus sur les intégrations IDE.
Exemples
Exemple | Source | Playground |
---|---|---|
basic | GitHub | Jouer en ligne |
fastify | GitHub | Jouer en ligne |
in-source-test | GitHub | Jouer en ligne |
lit | GitHub | Jouer en ligne |
marko | GitHub | Jouer en ligne |
preact | GitHub | Jouer en ligne |
react | GitHub | Jouer en ligne |
solid | GitHub | Jouer en ligne |
sveltekit | GitHub | Jouer en ligne |
typecheck | GitHub | Jouer en ligne |
workspace | GitHub | Jouer en ligne |
Projets utilisant Vitest
- unocss
- unplugin-auto-import
- unplugin-vue-components
- vue
- vite
- vitesse
- vitesse-lite
- fluent-vue
- vueuse
- milkdown
- gridjs-svelte
- spring-easing
- bytemd
- faker
- million
- Vitamin
- neodrag
- svelte-multiselect
- iconify
- tdesign-vue-next
- cz-git
Utilisation des commits non publiés
Si vous ne pouvez pas attendre une nouvelle version pour tester les dernières fonctionnalités, vous devrez cloner le dépôt vitest sur votre machine locale, puis le construire et le lier vous-même (pnpm est requis) :
Ensuite, allez dans le projet où vous utilisez Vitest et exécutez pnpm link --global vitest
(ou le gestionnaire de paquets que vous avez utilisé pour lier vitest
globalement).
Communauté
Si vous avez des questions ou avez besoin d’aide, rejoignez la communauté sur Discord et GitHub Discussions.