Environnement de Test
Vitest fournit l’option environment
pour exécuter du code dans un environnement spécifique. Vous pouvez modifier le comportement de l’environnement avec l’option environmentOptions
.
Par défaut, vous pouvez utiliser ces environnements :
node
est l’environnement par défautjsdom
émule un environnement de navigateur en fournissant l’API du navigateur, utilise le packagejsdom
happy-dom
émule un environnement de navigateur en fournissant l’API du navigateur, et est considéré comme plus rapide que jsdom, mais manque certaines API, utilise le packagehappy-dom
edge-runtime
émule edge-runtime de Vercel, utilise le package@edge-runtime/vm
Lors de l’utilisation des environnements jsdom
ou happy-dom
, Vitest suit les mêmes règles que Vite lors de l’importation de CSS et d’assets. Si l’importation d’une dépendance externe échoue avec l’erreur unknown extension .css
, vous devez intégrer l’ensemble de la chaîne d’importation manuellement en ajoutant tous les packages à server.deps.external
. Par exemple, si l’erreur se produit dans package-3
de cette chaîne d’importation : source code -> package-1 -> package-2 -> package-3
, vous devez ajouter les trois packages à server.deps.external
.
Depuis Vitest 2.0.4, le require
de CSS et d’assets à l’intérieur des dépendances externes est résolu automatiquement.
Environnements pour des Fichiers Spécifiques
Lorsque vous définissez l’option environment
dans votre configuration, elle s’appliquera à tous les fichiers de test de votre projet. Pour avoir un contrôle plus précis, vous pouvez utiliser des commentaires de contrôle pour spécifier l’environnement pour des fichiers spécifiques. Les commentaires de contrôle sont des commentaires qui commencent par @vitest-environment
et sont suivis du nom de l’environnement :
Ou vous pouvez également définir l’option environmentMatchGlobs
en spécifiant l’environnement en fonction des motifs glob.
Environnement Personnalisé
Vous pouvez créer votre propre package pour étendre l’environnement Vitest. Pour ce faire, créez un package avec le nom vitest-environment-${name}
ou spécifiez un chemin vers un fichier JS/TS valide. Ce package doit exporter un objet de forme Environment
:
Vous avez également accès aux environnements Vitest par défaut via l’entrée vitest/environments
:
Vitest fournit également la fonction utilitaire populateGlobal
, qui peut être utilisée pour déplacer des propriétés d’un objet dans l’espace de noms global :