J'utilise Mocha pour tester mon application NodeJS. Je ne suis pas en mesure de comprendre comment utiliser sa fonction de couverture de code. J'ai essayé de le googler mais je n'ai trouvé aucun tutoriel approprié. Veuillez aider.
node.js
unit-testing
code-coverage
mocha
tusharmath
la source
la source
istanbul cover node_modules/mocha/bin/_mocha
.istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
est un raccourci canonique vers./node_modules/.bin/
etistanbul/lib/cli.js
est aliaséistanbul
dans le dossier bin. Voici donc une commande plus courte:$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
Maintenant ( 2020 ), la meilleure façon d'utiliser istanbul est via son "état de l'art interface de ligne de commande" nyc .
Installer
Tout d'abord, installez-le dans votre projet avec
Ensuite, si vous avez un projet basé sur npm, changez simplement le script de test à l'intérieur de l'
scripts
objet de votre fichier package.json pour exécuter la couverture de code de vos tests mocha :Courir
Maintenant, lancez vos tests
et vous verrez un tableau comme celui-ci dans votre console, juste après la sortie de vos tests:
Personnalisation
Rapport HTML
Utilisez simplement
au lieu de
text
. Il va maintenant produire un rapport à l'intérieur./coverage/index.html
.Formats de rapport
Istanbul prend en charge un large éventail de formats de rapport. Il suffit de regarder sa bibliothèque de rapports pour trouver le plus utile pour vous. Ajoutez simplement une
--reporter=REPORTER_NAME
option pour chaque format souhaité. Par exemple, avecvous aurez à la fois la console et le rapport html.
Ne pas exécuter la couverture avec le test npm
Ajoutez simplement un autre script dans votre
package.json
et laissez letest
script uniquement avec votre lanceur de test (par exemple mocha):Maintenant, exécutez ce script personnalisé
pour exécuter des tests avec une couverture de code.
Échec du test de force si la couverture du code est faible
Échec si la couverture totale du code est inférieure à 90%:
Échec si la couverture du code d'au moins un fichier est inférieure à 90%:
la source
--reporter=html
activé mais le fichier html est toujours vide, rien n'est montré sur les blocs non couverts ou% couverts, etc. juste les en-têtes du tableauBlanket.js fonctionne également parfaitement.
npm install --save-dev blanket
devant votre test / tests.js
courir
mocha -R html-cov > coverage.html
la source