2 votes

C# - Tests unitaires - Comment calculer la couverture de code ?

B.s Specflow, Test unitaire

Je suis en train d'implémenter la couverture des déclarations dans les tests unitaires, j'ai identifié les conditions if, les blocs try catch e.t.c. et je vais écrire des scénarios qui couvriront tout le code en donnant une couverture de 100% des déclarations à mes tests unitaires.

Le problème, c'est que je sais que ces scénarios couvrent 100 % du code, mais que tous les autres qui exécuteront ces tests n'auront aucune idée de la couverture de l'énoncé qu'ils fournissent. Il n'y a aucune sortie de tests ou autre chose qui puisse indiquer le pourcentage de couverture des déclarations.

Comment le faire || Comment il est fait

3voto

AlSki Points 4364

La meilleure pratique (que votre commentaire indique que vous devriez suivre) serait alors de mettre en place un serveur de construction. N'importe quelle vieille boîte fera l'affaire, même la vôtre, mais dans une entreprise de taille raisonnable, assurez-vous de passer à une boîte appropriée une fois que vous avez démontré la preuve du concept.

Je suppose que vous avez déjà mis en place un contrôle de version dans votre organisation, ce qui signifie que le serveur de construction peut travailler sur une copie de votre code.

J'installerais TeamCity (c'est gratuit pour 20 configurations de build) et j'utiliserais son interface web pour mettre en place un build. Il suffit d'ajouter une étape pour Visual Studio et de la diriger vers votre solution. Ajoutez une autre étape pour NUnit, et cochez la case pour obtenir des résultats de couverture.

Plus important encore, vous obtenez également une tendance de ce qui se passe, par exemple Some stats Ce projet concerne l'interface utilisateur, d'où la faible couverture. J'ai également annulé une refonte qui n'a pas fonctionné, ce qui a entraîné une baisse des tests.

Il y a beaucoup de détails sur le TeamCity site web

Cependant, la meilleure façon de voir quel code est couvert doit être NCrunch comme l'a fait remarquer @Steve. Je l'utilise aussi tout le temps, et non seulement vous pouvez exécuter vos tests aussi rapidement que possible, et vous pouvez voir quelles lignes sont affectées, mais vous avez aussi un très bon support pour le débogage des tests.

Inline coverage in NCrunch

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X