2013-03-10 2 views
2

J'ai beaucoup de tests unitaires pour une application Node.js écrite en utilisant Mocha. Maintenant, j'aimerais avoir des données de couverture de test pour ces tests.Comment obtenir une couverture de code pour les tests Moka sans modifier le code source?

J'ai vu que Mocha prend en charge les rapports de couverture, mais nécessite un pré-traitement en utilisant une bibliothèque telle que JSCoverage. Gérer JSCoverage n'est pas fondamentalement difficile, mais pour que tout fonctionne correctement ce scénario nécessite que vous modifiiez votre code source de sorte qu'en fonction d'une variable d'environnement, le code instrumenté soit exporté ou le code d'origine.

C'est essentiellement l'étape que je n'aime pas.

Ce que je voudrais avoir est:

  • Ecrivez mon code comme d'habitude.
  • Ecrivez mes tests comme d'habitude en utilisant Mocha.
  • Obtenez la couverture de code pour mes tests SANS avoir besoin de modifier les tests ou le code.

Est-ce possible? Si c'est le cas, comment?

Toute velléité d'une bibliothèque qui me permet de faire ce serait génial :-)

Répondre

3

J'ai couru dans le même problème esthétique. Bien aussi un peu un hack, j'utilise l'extrait Makefile suivant:

.PHONY: coverage 

coverage: 
    mv lib lib-orig 
    jscoverage lib-orig lib 
    mocha -R html-cov > coverage.html 
    mv lib lib-cov 
    mv lib-orig lib 

au lieu du code inesthétiques, on finit avec une solution unaesthetically agréable caché derrière un Makefile simple. Au moins on peut continuer à utiliser jscoverage :)

+0

C'est vraiment plus un hack qu'une solution, mais j'aime l'approche :-). Le seul inconvénient à mon humble avis est si jscoverage ou crash de moka, alors il vous reste un dossier 'lib' manquant que vous avez manuellement besoin de recréer à partir de' lib-orig'. Bien sûr, ce n'est pas un gros problème, mais de toute façon ... –

Questions connexes