2009-08-26 8 views
0

Pour divers projets de bibliothèque C++ dans VS2008, j'ai un projet frère appelé <libraryname>-Test. C'est un projet exécutable qui dépend de la bibliothèque et exécute des tests dessus. La configuration post-construction du projet d'essai consiste simplement:Comment forcer l'exécution des événements post-build VS2008 C++?

"$ (TargetPath)"

Visual Studio ne sera pas ré-exécuter l'étape de post-construction à moins qu'il ne fait quelque chose pendant la construction, un re-lien au moins. Normalement, c'est une bonne chose, mais dans ce cas, je veux que les tests soient réexécutés chaque fois que la construction de la solution est déclenchée (par opposition aux builds du projet qui ne construisent que les projets dépendants nécessaires pour le vrai programme). Jusqu'ici, le seul moyen que j'ai trouvé pour que les tests soient exécutés à chaque fois est de supprimer l'un des fichiers intermédiaires dans le cadre du processus de post-construction. Cela fonctionne, mais ralentit les choses, car les projets de test doivent ensuite être reconstruits même si rien n'a changé.

Répondre

1

Placez le test dans l'étape de post-construction de votre projet principal plutôt que dans le projet de test. Comme il se reconstruit de toute façon, le test sera toujours exécuté.

+0

Je ne veux pas relancer les tests sur * chaque * construction du programme, je veux juste pouvoir les exécuter à la demande. Idéalement, en construisant une solution, car c'est ce que la machine de construction CI fait régulièrement. C'est pourquoi j'ai spécifiquement différencié les builds de projets des builds de solutions dans la question. –

+0

Ensuite, définissez l'événement post build sur les versions de version de votre projet uniquement. Utilisez les versions de version pour vos projets finaux qui sont expédiés/doivent être testés. Développez ensuite en utilisant la version de débogage. –

0

utilisez-vous un serveur CI comme CruiseControl ou Hudson? Vous pouvez généralement écrire des choses comme ça en eux. Ou utilisez simplement Nant même. Ils prennent tous en charge les événements post-construction.

+0

Non, le système CI est constitué de fichiers batch et de ... trucs. Les tests fonctionnent bien sur la machine CI, c'est sur les machines de développement que le système actuel provoque des plaintes. –

Questions connexes