2009-03-08 11 views
2

J'ai essayé d'utiliser NUnit pour tester le code C# qui est déjà connecté au code C++ (sans le NUnit, l'application fonctionne parfaitement).Exécution du code C++ via NUnit

Dans mon test, j'exécute la fonction principale via AppDomain.CurrentDomain.ExecuteAssembly (..), Cependant, lorsque le code C# essaie de "communiquer" avec le C++, il déclenche une exception et le test plante. L'exception est System.Reflection.TargetInvocationException si quelqu'un a et idée pourquoi cela se produit, il sera très très utile ... Merci, Naama

+0

Avez-vous essayé d'utiliser un débogueur pour isoler le bit de code lançant cette exception? L'exception est-elle levée dans l'application C# ou C++? – strager

+0

Avez-vous dû ajouter quelque chose à votre app.config dans votre application? – eglasius

+0

J'ai utilisé le débogueur, et j'ai isolé le code où l'exception est en cours. Cela se produit lorsque j'essaie de créer un objet en C++ contenu dans un objet C#. Et j'ai ajouté anyhing à l'app.config dans mon application –

Répondre

1

Vos soupçons sont corrects, il est en cours pendant le constructeur, le constructeur dans C# essaie pour créer un objet (il est déjà enveloppé et fonctionne parfaitement lorsque l'application s'exécute normalement) qui est écrit en C++ et en C++ dans le constructeur de l'objet où l'exception est levée. Cependant l'application est très complexe mais si nécessaire pour la clarification j'écrirai une application de démonstration qui symbolisera la vraie.

+0

"Votre" étant le mien? – strager

1

Il est probable qu'une exception soit levée dans votre code C++ dans le constructeur de la classe. Vérifiez que vous gérez correctement les exceptions et que vous fournissez les informations appropriées au constructeur afin que les exceptions ne soient pas levées.

Questions connexes