2011-09-30 5 views
5

Existe-t-il un moyen de définir des points d'arrêt et de les parcourir à l'aide de NUnit avec un projet mixte de C++ natif et de C++ géré? J'ai mon SUT (Software Under Test) configuré comme une bibliothèque statique (C++ natif) J'ai ma suite de tests unitaires en tant que projet séparé configuré comme une DLL qui dépend de ma bibliothèque précédemment mentionnée. J'ai également ajouté cette bibliothèque comme référence à mon projet de test unitaire.Débogage de C++ natif/géré dans VS 2010 avec NUnit

Mes tests fonctionnent correctement dans NUnit, les points d'arrêt ne fonctionnent pas.

Encore une fois, existe-t-il un moyen de faire fonctionner les points d'arrêt avec NUnit avec Native/Managed C++?

+0

Si le code testé n'utilise pas C++/CLI (Managed C++) alors pourquoi ne pas utiliser un framework de test C++ simple à la place? Y a-t-il un besoin particulier d'utiliser NUnit? – Daemin

+0

@Daemin, si vous avez du code qui commence en C# et qui finit en natif alors pourquoi utiliser deux frameworks pour tester le même chemin? C# peut passer à non géré via un pont C++ géré – devshorts

+0

@devshorts Dans la description, ils ont déjà une bibliothèque statique C++ native qu'ils veulent tester, mais ils ont écrit des tests C# pour cela. Cela semble un peu étrange de tester le code C++ natif avec un framework de test C#. – Daemin

Répondre

1

La méthode la plus pratique consiste à définir une entrée d'outil personnalisée en spécifiant le chemin d'accès à NUnit en tant que commande. Pour un projet VS2003 C#, vous pouvez utiliser $ (TargetPath) pour les arguments et $ (TargetDir) pour le répertoire initial. Avec Visual Studio VS2005, cela devient un peu plus difficile, car cette version a changé la signification des macros 'Cible' et pointe désormais vers les répertoires intermédiaires 'obj' plutôt que vers la sortie finale dans l'un des répertoires 'bin'. . Voici quelques alternatives qui fonctionnent dans les deux versions:

$ (ProjectDir) $ (ProjectFileName) pour ouvrir le projet VS plutôt que l'assembly. Si vous utilisez cette approche, assurez-vous de renommer votre fichier de configuration en conséquence et placez-le dans le même répertoire que le fichier de projet VS.

$ (ProjetRep) bin/Debug/$ (TargetName) $ (TargetExt) pour exécuter directement l'assemblage. Notez que cela nécessite une partie codée en dur du chemin, y compris la configuration.

Si vous souhaitez déboguer vos tests, utilisez Visual Studio Debug | Processus ... élément de menu à attacher à NUnit après le démarrage et définir les points d'arrêt dans votre code de test comme vous le souhaitez avant d'exécuter les tests.

+0

J'essaie d'obtenir des points d'arrêt pour travailler avec C++, pas C#. En outre, attacher VS à NUnit ne s'arrête sur aucun point d'arrêt lorsque je cours mes tests. – NexAddo