Interface de ligne de commande
Commandes
vitest
Démarre Vitest dans le répertoire courant. Bascule automatiquement en mode surveillance en environnement de développement et en mode exécution en environnement CI.
Vous pouvez passer un argument supplémentaire pour filtrer les fichiers de test à exécuter. Par exemple :
vitest foobar
N'exécutera que les fichiers de test dont le chemin contient foobar
. Ce filtre vérifie simplement l'inclusion et ne prend pas en charge les expressions régulières ou les motifs glob (sauf si votre terminal les interprète avant que Vitest ne reçoive le filtre).
vitest run
Effectue une seule exécution sans mode surveillance.
vitest watch
Exécute toutes les suites de tests, puis surveille les modifications et réexécute les tests en cas de changement. Équivalent à appeler vitest
sans argument. Revient à vitest run
en CI.
vitest dev
Alias de vitest watch
.
vitest related
Exécute uniquement les tests qui couvrent une liste de fichiers sources. Fonctionne avec les importations statiques (par exemple, import('./index.ts')
ou import index from './index.ts')
, mais pas avec les importations dynamiques (par exemple, import(filepath)
). Tous les fichiers doivent être relatifs au dossier racine.
Il est utile de l'exécuter avec lint-staged
ou avec votre configuration CI.
vitest related /src/index.ts /src/hello-world.js
TIP
N'oubliez pas que Vitest s'exécute avec le mode surveillance activé par défaut. Si vous utilisez des outils comme lint-staged
, vous devez également passer l'option --run
, afin que la commande puisse se terminer normalement.
// .lintstagedrc.js
export default {
'*.{js,ts}': 'vitest related --run',
};
vitest bench
Exécute uniquement les tests de benchmark, qui permettent de comparer les performances.
Options
Options | |
---|---|
-v, --version | Affiche le numéro de version. |
-r, --root <path> | Définit le répertoire racine du projet. |
-c, --config <path> | Chemin vers le fichier de configuration. |
-u, --update | Met à jour les snapshots. |
-w, --watch | Active le mode surveillance intelligent et instantané. |
-t, --testNamePattern <pattern> | Exécute les tests dont les noms complets correspondent au modèle. |
--dir <path> | Répertoire de base à partir duquel rechercher les fichiers de test. |
--ui | Active l'interface utilisateur. |
--open | Ouvre l'interface utilisateur automatiquement si elle est activée (par défaut : true ). |
--api [api] | Service API. Options disponibles : --api.port <port> , --api.host [host] et --api.strictPort . |
--threads | Active l'utilisation de threads (par défaut : true ). |
--single-thread | Exécute les tests dans un seul thread. Nécessite --threads (par défaut : false ). |
--experimental-vm-threads | Exécute les tests dans un pool de workers en utilisant l'isolation VM (par défaut : false ). |
--experimental-vm-worker-memory-limit | Définit la limite de mémoire maximale autorisée pour un worker. Lorsqu'elle est atteinte, un nouveau worker est créé. |
--silent | Supprime la sortie des tests dans la console. |
--isolate | Isole l'environnement pour chaque fichier de test (par défaut : true ). |
--reporter <name> | Sélectionne le reporter : default , verbose , dot , junit , json , ou un chemin vers un reporter personnalisé. |
--outputFile <filename/-s> | Écrit les résultats des tests dans un fichier lorsque l'option --reporter=json ou --reporter=junit est également spécifiée. Via la notation pointée de cac, vous pouvez spécifier des sorties individuelles pour plusieurs reporters. |
--coverage | Active le rapport de couverture de code. |
--run | Désactive le mode surveillance. |
--mode | Remplace le mode Vite (par défaut : test ). |
--mode <name> | Remplace le mode Vite (par défaut : test ). |
--globals | Injecte les API globalement. |
--dom | Émule les APIs du navigateur avec happy-dom. |
--browser [options] | Exécute les tests dans le navigateur (par défaut : false ). |
--environment <env> | Environnement d'exécution (par défaut : node ). |
--passWithNoTests | Termine avec succès même si aucun test n'est trouvé. |
--logHeapUsage | Affiche la taille du heap pour chaque test. |
--allowOnly | Autorise les tests et les suites marqués comme only (par défaut : false en CI, true sinon). |
--dangerouslyIgnoreUnhandledErrors | Ignore toute erreur non interceptée. |
--changed [since] | Exécute les tests affectés par des fichiers modifiés (par défaut : false ). Voir docs. |
--shard <shard> | Exécute les tests dans un shard spécifié. |
--sequence | Définit l'ordre dans lequel exécuter les tests. Utilisez la notation pointée de cac pour spécifier les options (par exemple, utilisez --sequence.shuffle pour exécuter les tests dans un ordre aléatoire ou --sequence.shuffle --sequence.seed SEED_ID pour exécuter un ordre spécifique). |
--no-color | Supprime les couleurs de la sortie de la console. |
--inspect | Active l'inspecteur Node.js. |
--inspect-brk | Active l'inspecteur Node.js avec un point d'arrêt. |
--bail <number> | Arrête l'exécution des tests lorsqu'un certain nombre de tests ont échoué. |
--retry <times> | Réessaie le test un nombre de fois spécifique s'il échoue. |
-h, --help | Affiche les options CLI disponibles. |
TIP
Vitest prend en charge à la fois le camel case et le kebab case pour les arguments CLI. Par exemple, --passWithNoTests
et --pass-with-no-tests
fonctionneront tous les deux (--no-color
et --inspect-brk
sont les exceptions).
Vitest prend également en charge différentes façons de spécifier la valeur : --reporter dot
et --reporter=dot
sont tous les deux valides.
Si une option prend en charge un tableau de valeurs, vous devez passer l'option plusieurs fois :
vitest --reporter=dot --reporter=default
Les options booléennes peuvent être niées avec le préfixe no-
. Spécifier la valeur comme false
fonctionne également :
vitest --no-api
vitest --api=false
changed
Type:
boolean | string
Default: false
Exécute uniquement les tests sur les fichiers modifiés. Si aucune valeur n'est fournie, il exécute les tests sur les modifications non validées (y compris les modifications staged et unstaged).
Pour exécuter les tests sur les modifications apportées lors du dernier commit, vous pouvez utiliser
--changed HEAD~1
. Vous pouvez également passer le hash du commit ou le nom de la branche.Si elle est associée à l'option de configuration
forceRerunTriggers
, cela exécutera toute la suite de tests si une correspondance est trouvée.
shard
Type:
string
Default: disabled
Fragment de la suite de tests à exécuter, au format
<index>
/<count>
, où :count
est un entier positif, représentant le nombre total de fragments.index
est un entier positif, représentant l'index du fragment à exécuter.
Cette commande divise tous les tests en
count
parties égales et n'exécute que ceux qui se trouvent dans la partieindex
. Par exemple, pour diviser votre suite de tests en trois parties, utilisez ceci :shvitest run --shard=1/3 vitest run --shard=2/3 vitest run --shard=3/3
WARNING
Vous ne pouvez pas utiliser cette option avec --watch
activé (activé par défaut en dev).