Existe-t-il un moyen d'avoir une couverture de code dans le cadre de test Javascript Jest qui est construit sur Jasmine?
Le cadre interne n'imprimer la couverture du code qu'il obtient. J'ai aussi essayé d'utiliser Istanbul , couverture et JSCover , mais aucun d'entre eux travaillent.
javascript
jestjs
Alex Palcuie
la source
la source
Réponses:
Lors de l'utilisation de Jest 21.2.1 , je peux voir la couverture de code sur la ligne de commande et créer un répertoire de couverture en passant
--coverage
au script Jest. Voici quelques exemples:J'ai tendance à installer Jest localement, auquel cas la commande pourrait ressembler à ceci:
npx jest --coverage
Je suppose (bien que je n'ai pas confirmé), que cela fonctionnerait également si j'installais Jest globalement:
jest --coverage
Les documents très rares sont ici
Lorsque j'ai navigué dans le répertoire coverage / lcov-report , j'ai trouvé un fichier index.html qui pouvait être chargé dans un navigateur. Il comprenait les informations imprimées sur la ligne de commande, ainsi que des informations supplémentaires et une sortie graphique.
la source
node_modules
via./node_modules/.bin/jest --coverage
. Tant que le package est nommé dans package.json, vous pouvez garantir l'exécution avec la version exacte de jest que vous attendez.MISE À JOUR: 20/07/2018 - Ajout de liens et mise à jour du nom pour les reporters de couverture.
MISE À JOUR: 14/08/2017 - Cette réponse est totalement obsolète. Regardez simplement les documents Jest maintenant. Ils ont un support officiel et une documentation sur la façon de procéder.
@hankhsiao a un dépôt fourchu où Istanbul travaille avec Jest. Ajoutez ceci à vos dépendances de développement
Assurez-vous également que la couverture est activée dans votre entrée jest package.json et vous pouvez également spécifier les formats souhaités. (Le html est plutôt mauvais).
Voir la documentation Jest pour la couverture des reporters (la valeur par défaut est
["json", "lcov", "text"]
)Ou ajoutez
--coverage
lorsque vous invoquez la plaisanterie.la source
coverageReporters
et la valeur par défaut est["json", "lcov", "text"]
. Voir facebook.github.io/jest/docs/…Janvier 2019: Jest version 23.6
Pour toute personne examinant cette question récemment, en particulier si vous testez en utilisant
npm
ouyarn
directementActuellement, vous n'avez pas à modifier les options de configuration
Selon le site officiel de Jest , vous pouvez faire ce qui suit pour générer des rapports de couverture:
1- Pour npm:
Vous devez mettre
--
avant de passer l'--coverage
argument de plaisanteriesi vous essayez d'appeler
--coverage
directement sans le--
cela ne fonctionnera pas2- Pour le fil:
Vous pouvez passer l'
--coverage
argument de plaisanterie directementla source
--watch
paramètre pour cela.package.json
.Très bien, ignorez ma réponse précédente car quelqu'un m'a dit qu'elle n'avait pas résolu le problème.
Nouvelle réponse:
1) Vérifiez la dernière plaisanterie (v 0.22): https://github.com/facebook/jest
2) L'équipe Facebook place Istanbul dans le cadre du rapport de couverture et vous pouvez l'utiliser directement.
3) Après avoir exécuté jest, vous pouvez obtenir le rapport de couverture sur la console et sous le dossier racine défini par jest, vous trouverez le rapport de couverture au format json et html.
4) FYI, si vous installez à partir de npm, vous pourriez ne pas obtenir la dernière version; alors essayez d'abord le github et assurez-vous que la couverture est ce dont vous avez besoin.
Ancienne réponse:
J'ai aussi le même problème. La réponse courte est:
Istanbul
etJest
ne travaillent PAS ensemble.Consultez les pages suivantes pour plus de détails:
https://github.com/facebook/jest/issues/101
@Ciro Costa: Le
config.collectCoverage
ne fonctionne PAS, car c'est une fonction «TODO». Veuillez vérifier le code source.la source
Si vous rencontrez des problèmes avec --coverage ne fonctionne pas, cela peut également être dû au fait que les reporters de couverture sont activés sans que 'texte' ou 'résumé de texte' ne soit ajouté. Dans la documentation: "Remarque: la définition de cette option écrase les valeurs par défaut. Ajoutez" texte "ou" texte-résumé "pour voir un résumé de la couverture dans la sortie de la console." La source
la source
Configurez votre fichier package.json
Maintenant, exécutez:
Tout le test commencera à s'exécuter et vous obtiendrez le rapport.
la source
J'ai eu le même problème et je l'ai résolu comme ci-dessous.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
Après avoir écrit les tests, exécutez la commande npm run jest-coverage. Cela créera un dossier de couverture dans le répertoire racine. /coverage/icov-report/index.html a la vue html de la couverture du code.
Bon codage!
la source
Essayez Chutzpah . Je viens de l'utiliser. Et j'ai blogué à ce sujet sur la façon d'intégrer dans Visual Studio.
Voici comment j'ai codé la couverture avec Chutzpah: http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/
la source
require
.