Transformer une application console en projet de test unitaires

Le scénario est le suivant: Vous développez un outil sous forme d’une librairie de classe (ou plusieurs) et vous avez, pour des raison de rapidité au démarrage, crée un projet console pour réaliser quelques appels sur vos classes pour les tester / commencer le debug. Et finalement vous vous dites, plutôt qu’une appli console, un projet de test unitaire serait bien mieux pour faire ça ! Que faire alors, créer un nouveau projet de test unitaire et copier / coller le code, en l’adaptant bien sûr pour que ça tourne dans un test unitaire, ou bien transformer le projet console ?

La transformation du type de projet est assez simple et c’est la solution que je vous propose. Bien sûr le code de test que vous avez sans doute fait dans la classe Program de cette appli de test devra tout de même être réécrit sous forme d’une classe de test unitaire. Mais déjà ma solution vous evitera de créer un projet supplémentaire, c’est du recyclage ! 🙂

Pour cette transformation, il faut 3 actions :

1 – modifiez les propriétés du projet console pour sélectionner comme type de sortie “Class Library” au lieu de “Console Application”

2- Ajoutez la référence sur “Microsoft.VisualStudio.QualityTools.UnitTestFramework”

3- Dans l’explorateur de solution, faites un click droite sur le projet / décharger, puis click droit encore et “edit csproj”. Dans le xml qu’il vous affiche, il faut ajouter un nœud ”ProjectTypeGuids” pour que visual studio nous autorise à ajouter des éléments relatifs au type de projet de test. ce nœud est à ajouter dans le premier élément “PropertyGroup” de votre csproj

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Et voilà vous pouvez maintenant recharger le projet (click droit / reload) et vous pouvez ajouter un nouvel élément de type test unitaire pour y recoller votre code de test (avec quelques ASSERT en supplément très certainement 😉 )

Publié dans Développement divers Tagués avec : , ,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Verifions que vous êtes un humain * Time limit is exhausted. Please reload CAPTCHA.

Archives

Social

  • Twitter
  • LinkedIn
  • Flux RSS
  • mvp
  • technet
  • Google+