API Node.js
WARNING
Vitest expose une API privée expérimentale. Les changements majeurs risquent de ne pas suivre le semver, veuillez donc épingler la version de Vitest que vous utilisez.
startVitest
Vous pouvez lancer les tests Vitest en utilisant son API Node.js :
import { startVitest } from 'vitest/node';
const vitest = await startVitest('test');
await vitest?.close();
La fonction startVitest
renvoie une instance Vitest
si les tests peuvent être démarrés avec succès. Elle retourne undefined
si l'une des conditions suivantes est remplie :
- Vitest n'a pas trouvé le package
vite
(généralement installé avec Vitest). - La couverture est activée et le mode d'exécution est "test", mais le package de couverture n'est pas installé (
@vitest/coverage-v8
ou@vitest/coverage-istanbul
). - Le package d'environnement n'est pas installé (
jsdom
/happy-dom
/@edge-runtime/vm
).
Si undefined
est retourné ou si les tests échouent pendant l'exécution, Vitest définit process.exitCode
à 1
.
Si le mode de surveillance n'est pas activé, Vitest appellera la méthode close
.
Si le mode de surveillance est activé et que le terminal prend en charge TTY, Vitest affichera des raccourcis clavier dans la console.
Vous pouvez passer une liste de filtres comme deuxième argument. Vitest exécutera uniquement les tests dont le chemin de fichier contient au moins une des chaînes transmises.
De plus, vous pouvez utiliser le troisième argument pour passer des arguments de ligne de commande (CLI), qui remplaceront toutes les options de configuration de test.
Alternativement, vous pouvez passer la configuration Vite complète comme quatrième argument, qui aura priorité sur toutes les autres options définies par l'utilisateur.
createVitest
Vous pouvez créer une instance Vitest vous-même en utilisant la fonction createVitest
. Elle renvoie la même instance Vitest
que startVitest
, mais elle ne démarre pas les tests et ne valide pas la présence des packages requis.
import { createVitest } from 'vitest/node';
const vitest = await createVitest('test', {
watch: false,
});
parseCLI
Vous pouvez utiliser cette méthode pour analyser les arguments de la ligne de commande (CLI). Elle accepte une chaîne de caractères (où les arguments sont séparés par un simple espace) ou un tableau de chaînes de caractères contenant les arguments de la CLI dans le même format que celui utilisé par Vitest CLI. Elle renvoie un filtre et des options
que vous pouvez ensuite transmettre aux méthodes createVitest
ou startVitest
.
import { parseCLI } from 'vitest/node';
parseCLI('vitest ./files.ts --coverage --browser=chrome');
Vitest
L'instance Vitest
requiert la définition du mode de test actuel. Les modes possibles sont les suivants :
test
: pour l'exécution des tests unitaires.benchmark
: pour l'exécution des benchmarks.
mode
test
Le mode test
exécute uniquement les fonctions à l'intérieur de test
ou it
, et génère une erreur si bench
est rencontré. Ce mode utilise les options include
et exclude
dans la configuration pour identifier les fichiers de test.
benchmark
Le mode benchmark
exécute les fonctions bench
et génère une erreur s'il rencontre test
ou it
. Ce mode utilise les options benchmark.include
et benchmark.exclude
dans la configuration pour identifier les fichiers de benchmark.
start
Vous pouvez lancer l'exécution des tests ou des benchmarks avec la méthode start
. Vous pouvez passer un tableau de chaînes pour filtrer les fichiers à tester.