2008-11-06 4 views
2

J'essaie de comprendre comment une bibliothèque fonctionne et j'aimerais pouvoir visualiser quelles méthodes et lignes de code sont exécutées en réponse à l'entrée de l'utilisateur (par exemple, une pression sur une touche ou un clic de souris). Existe-t-il un moyen de le faire dans .NET?Visualiser le code impliqué dans une action?

Répondre

0

Si vous êtes en mesure d'exécuter l'action que vous souhaitez analyser à partir d'un test NUnit, vous pouvez utiliser l'utilitaire NCover pour visualiser les parties du code qui ont été exécutées et celles qui ne l'ont pas été.

http://www.ncover.com/

Hope this helps!

Adam

+0

Je viens d'essayer ceci avec SharpDevelop + PartCover, mais mon formulaire ne s'initialisera pas pendant un test unitaire à cause d'une exception mystérieuse - "L'enregistrement DragDrop n'a pas réussi" De toute façon ce n'est pas une bonne solution car je veux voir le code qui s'exécute en réponse à une action spécifique, pas tout le code qui s'exécute. – Qwertie

+0

Il peut certainement être difficile de tester le code de l'interface utilisateur. En supposant que vous ayez une couche d'interface utilisateur très fine où un événement de clic sur un bouton n'applique qu'une seule méthode sur une classe de contrôleur, vous pouvez tester la méthode du contrôleur à la place de l'événement click. Cela peut vous rapprocher de ce dont vous avez besoin, bonne chance! –

2

Il y a un outil merveilleux, libre de Microsoft appelé Pex. Une fois installé, vous pouvez cliquer sur une méthode avec le bouton droit de la souris et sélectionner "Exécuter l'exploration Pex". Il va analyser le code et vous montrer les entrées pour toucher chaque partie de la méthode.

Pour plus d'informations, voir Pex CodeDigger. Voici une capture d'écran en action:

alt text http://blogs.msdn.com/blogfiles/nikolait/WindowsLiveWriter/SneakPreviewCodeDiggerTheNewPexExperienc_14A2D/DiggerTestTable_thumb.png

0

Vous pouvez utiliser un outil de couverture de code comme NCover même sans frameworks de tests unitaires. Il suffit de lancer l'application via NCover, et vérifiez les résultats. Editer: vous pouvez également consulter PartCover, une alternative open source.

+0

La détection de couverture de code peut-elle être limitée à une partie seulement de l'exécution de l'application (à l'exclusion du démarrage/de l'arrêt)? – Qwertie

+0

Dépend de l'outil. Avec NCover, vous pouvez limiter entre autres la couverture d'assemblages spécifiques en utilisant des commutateurs de ligne de commande (voir http://www.ncover.com/documentation/console/flags pour plus de détails). – csgero

Questions connexes