51 votes

Comment profiler les tests unitaires dans Visual Studio 2012 ?

Est-il possible de profil Les tests unitaires MSTest dans Visual Studio 2012 Ultimate sans utiliser d'outils de profilage externes ?

55voto

Oleg Sych Points 4303

Cette fonctionnalité a été rajoutée dans la prochaine mise à jour trimestrielle 1 de Visual Studio 2012. Cliquez avec le bouton droit de la souris sur le test que vous souhaitez profiler dans l'explorateur de tests et sélectionnez "Profile Test" dans le menu contextuel.

30voto

Cybermaxs Points 12146

Dans Visual Studio, c'était une fonctionnalité très puissante ! Comme vous, je ne la trouve pas dans VS2012 (pas de références dans MSDN ou dans les blogs, ...)

Maintenant, la seule solution que j'ai trouvée pour profiler les tests unitaires est d'attacher le profileur à un processus appelé vstest.executionengine.x86.exe (x86 pour moi mais cela pourrait être différent pour les 64 bits).

Vous pouvez le faire dans l'onglet "Explorateur de performances" après un clic droit.

enter image description here

Une fois que le profileur est lancé, vous pouvez exécuter autant de tests que vous le souhaitez. Ensuite, arrêtez le profilage et vous verrez tous les détails de cette session.

Cette technique présente deux inconvénients :

  • pour certaines raisons, le processus est absent de la liste. Peut-être qu'il s'arrête quand il est au repos. Commencez juste un test pour le voir.
  • Vous devez attacher le Profiler pour chaque session. Je ne trouve pas encore de moyen de le script.

J'espère que cela vous aidera.

0voto

muntoo Points 4905

Dans Visual Studio 2015, suivez les instructions données par Cybermaxs, mais sélectionnez TE.ProcessHost.Managed . Malheureusement, il semble qu'il y en ait deux, vous devez donc sélectionner celui qui utilise le plus le CPU.

http://i.stack.imgur.com/1Wko1.png

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