Couverture
Vitest prend en charge la couverture de code native via v8
et la couverture de code instrumentée via istanbul
.
Fournisseurs de Couverture
Les supports pour v8
et istanbul
sont optionnels. Par défaut, v8
sera utilisé.
Vous pouvez sélectionner l’outil de couverture en définissant test.coverage.provider
sur v8
ou istanbul
:
Lorsque vous démarrez le processus Vitest, il vous invitera à installer automatiquement le paquet de support correspondant.
Ou si vous préférez les installer manuellement :
Configuration de la Couverture
Pour tester avec la couverture activée, vous pouvez passer le drapeau --coverage
dans la CLI.
Par défaut, le reporter ['text', 'html', 'clover', 'json']
sera utilisé.
Pour le configurer, définissez les options test.coverage
dans votre fichier de configuration :
Reporter de Couverture Personnalisé
Vous pouvez utiliser des reporteurs de couverture personnalisés en passant soit le nom du paquet, soit le chemin absolu dans test.coverage.reporter
:
Les reporteurs personnalisés sont chargés par Istanbul et doivent correspondre à son interface de reporter. Voir l’implémentation des reporteurs intégrés pour référence.
Fournisseur de Couverture Personnalisé
Il est également possible de fournir votre fournisseur de couverture personnalisé en passant 'custom'
dans test.coverage.provider
:
Les fournisseurs personnalisés nécessitent une option customProviderModule
qui est un nom de module ou un chemin d’où charger le CoverageProviderModule
. Il doit exporter un objet qui implémente CoverageProviderModule
comme exportation par défaut :
Veuillez vous référer à la définition de type pour plus de détails.
Changer l’Emplacement du Dossier de Couverture par Défaut
Lors de l’exécution d’un rapport de couverture, un dossier coverage
est créé dans le répertoire racine de votre projet. Si vous souhaitez le déplacer vers un autre répertoire, utilisez la propriété test.coverage.reportsDirectory
dans le fichier vite.config.js
.
Ignorer le Code
Les deux fournisseurs de couverture ont leurs propres méthodes pour ignorer le code des rapports de couverture :
Lors de l’utilisation de TypeScript, les codes sources sont transpiled en utilisant esbuild
, qui supprime tous les commentaires des codes sources (esbuild#516).
Les commentaires considérés comme commentaires légaux sont préservés.
Pour le fournisseur istanbul
, vous pouvez inclure un mot-clé @preserve
dans l’indice d’ignorance.
Attention, ces indices d’ignorance peuvent maintenant être inclus dans la version finale de production également.
Pour v8
, cela ne pose pas de problèmes. Vous pouvez utiliser des commentaires v8 ignore
avec TypeScript comme d’habitude :
Autres Options
Pour voir toutes les options configurables pour la couverture, consultez la Référence de Configuration de la Couverture.
UI de Vitest
Vous pouvez vérifier votre rapport de couverture dans Vitest UI.
Vitest UI activera le rapport de couverture lorsqu’il est explicitement activé et que le reporter de couverture HTML est présent, sinon il ne sera pas disponible :
- activez
coverage.enabled=true
dans votre configuration ou exécutez Vitest avec le drapeau--coverage.enabled=true
- ajoutez
html
à la listecoverage.reporter
: vous pouvez également activer l’optionsubdir
pour mettre le rapport de couverture dans un sous-répertoire