2008-11-03 7 views
7

J'ai un grand projet pour lequel j'essaie d'utiliser TDD. J'utilise Tut comme cadre de test, qui a ses défauts mais est suffisant pour ce dont j'ai besoin.Création et exécution de tests unitaires C++ dans Visual Studio (TDD)

Je dois exploiter les coutures de test de temps de liaison, chaque test doit être dans son propre exécutable. Le projet de cet exécutable se lance ensuite en tant qu'étape de post-construction. Malheureusement, cela signifie que mon Visual Studio Sln est plein de tests, ce qui n'est pas évolutif et cache également les projets importants.

Quelqu'un sait-il d'une meilleure façon d'exécuter ces tests? Est-il possible de masquer des projets à partir d'une construction tout en les construisant?

+0

J'ai ensuite mis à niveau, l'ajout de dossiers de solution résout ce problème. Je peux juste mettre mes tests dans un dossier. –

Répondre

4

"Est-il possible de masquer des projets d'une construction tout en les construisant?"

Vous pouvez faire une solution séparée pour les cas de test. Ensuite, vous pouvez configurer l'étape de post-construction de vos projets principaux. Ce post-build devrait construire des tests-projets via une solution séparée et les exécuter. La construction de projets de test doit être effectuée via une ligne de commande (voir par exemple here pour plus de détails).

Si vous devez lier vos tests unitaires avec certains des projets principaux lib-s, vous pouvez utiliser

#pragma comment(lib, "libname") 

Voir this MSDN page pour plus de détails.

+0

J'aime l'idée de créer un sln séparé, j'espère que je peux leur faire partager des fichiers obj. –

+0

Je n'ai pas essayé de partager obj-s ... Bonne chance :) – sergtk

0

Vous pouvez essayer de regrouper vos tests dans des dossiers (appelés filtres?) Dans votre solution dans l'Explorateur de solutions. Cela séparerait les tests de vos autres projets. Mais, sinon, pourriez-vous éviter d'utiliser des coutures de test de temps de liaison (Oui, je sais, il est probablement trop tard pour suggérer cela) et utiliser le polymorphisme pour fournir votre variation d'exécution et avoir moins de projets de test?

0

Je ne sais pas si vous êtes toujours à la recherche d'une solution. Mais voici une idée:

Vous pouvez conserver tous vos tests dans une bibliothèque et écrire une application qui se génère et exécute chaque test. De cette façon, vous finissez avec un exécutable (et donc un projet) pour une suite et chaque test sera comme un exécutable séparé. Il s'agit en fait du mécanisme utilisé dans CUnitWin32. Vous pourriez même être en mesure d'emballer vos tests dans ce cadre.

Questions connexes