2009-03-08 2 views
2

Я попытался использовать NUnit для тестирования кода на C#, который уже подключен к C++-коду (без NUnit приложение отлично работает).Запуск кода на C++ через NUnit

В моем тесте я запускаю главную функцию через AppDomain.CurrentDomain.ExecuteAssembly (..). Однако, когда код C# пытается «обмениваться» с C++, он выдает исключение и сбой при тестировании. Исключение составляет System.Reflection.TargetInvocationException, если у кого есть и идея, почему это произойдет, это будет очень полезно ... Спасибо, Naama

+0

Вы пытались использовать отладчик, чтобы изолировать бит кода, бросающий это исключение? Исключено ли исключение в приложении C# или C++? – strager

+0

Вам нужно было добавить что-нибудь в свой app.config в своем приложении? – eglasius

+0

Я использовал отладчик, и я выделил код, в котором происходит исключение. Это происходит, когда я пытаюсь создать объект в C++, который содержится в объекте C#. И я havnt добавить anyhing в app.config в моем приложении – 2009-03-08 07:21:37

ответ

1

Ваши подозрения верны, что он проходит во время конструктора, конструктор в C# пытается для создания объекта (он уже завершен и работает идеально, когда приложение работает нормально), которое написано на C++ и в C++ в конструкторе объекта генерируется исключение. Однако приложение очень сложное, но если это необходимо для пояснения, я напишу демо-приложение, которое символизирует реальный.

+0

«Твоя» моя? – strager

1

Вероятно, что исключение выбрасывается в ваш код на C++ в конструкторе класса. Убедитесь, что вы правильно обрабатываете исключения и что вы даете правильную информацию конструктору, поэтому исключения не выбрасываются.