2010-05-17 5 views
0

Lorsque vous travaillez avec Visual Studio en général (ou Visual C# Express dans mon cas particulier), il semble que chaque projet peut être configuré pour produire une seule sortie - par exemple un seul exécutable ou une bibliothèque.Travailler autour de "un exécutable par projet" dans Visual C# pour de nombreux petits programmes de test

Je travaille sur un projet qui consiste en une bibliothèque partagée et quelques applications, et j'ai déjà un projet dans ma solution pour chacun d'entre eux. Cependant, au cours du développement, je trouve utile d'écrire de petits exemples de programmes qui peuvent exécuter un petit sous-système isolément (à un niveau qui n'appartient pas aux tests unitaires).

Existe-t-il un bon moyen de gérer cela dans Visual Studio? Je voudrais éviter d'ajouter plusieurs dizaines de projets distincts à ma solution pour chaque petit programme de test que j'écris, surtout quand ces programmes seront généralement moins de 100 lignes de code. J'espère trouver quelque chose qui me permet de continuer à travailler dans Visual Studio et d'utiliser son système de construction (plutôt que de passer à quelque chose comme NAnt).

je pouvais prévoir la réponse d'être quelque chose comme:

  • Une façon de mettre cela dans Visual Studio que je ne l'ai pas encore trouvé
  • Une interface graphique comme coureur graphique de NUnit qui recherche un ensemble de cours avec des fonctions principale() définie que vous pouvez sélectionner et exécuter
  • un outil de ligne de commande qui permet de spécifier un ensemble et une classe avec une fonction principale d'exécuter

Répondre

2

plutôt que écrire de petits programmes de test, envisager d'écrire des tests unitaires. Cela vous mène directement au Test Driven Development.

Vous pouvez avoir autant de tests unitaires dans un projet de test que vous le souhaitez.

+0

Exactement. Je ne vois pas de bonnes raisons pour lesquelles ces programmes individuels ne peuvent pas être simplement des méthodes de test différentes, sauf si vous polluez l'état mutable statique partout. – kyoryu

+0

J'utilise déjà des tests unitaires - le but est de faire des tests d'intégration simples et de vérifier les comportements réels (comme la réaction du code réseau dans diverses circonstances) afin qu'ils puissent être précisément moqués. –

+1

@Kevin: Vous pouvez toujours utiliser l'infrastructure de test unitaire pour ce type de test. Il s'intègre beaucoup plus naturellement dans le flux de travail VS que de créer de nombreux petits programmes. Vous souhaitez affecter ces tests à un groupe qui ne s'exécute pas systématiquement lorsque vous testez l'application en tant que tel ou que vous l'ajoutez peut-être à un projet de test distinct. –

0

Un projet - une sortie. Simple. Pas moyen de contourner cela.

Utilisez des tests unitaires pour la compilation d'extraits.

1

Je me trouve en train d'utiliser LinqPad dans ce genre de situation. Je peux lier à l'application exe/dlls et puis exécuter le code de test qui référence les composants de projet/solution. Je trouve cela bien plus facile d'utiliser le désordre en utilisant cela pour écrire un peu de code peut référencer le projet mais qui n'a pas à faire partie de la base de code permanent.

Questions connexes