通过 NUnit 运行 C++ 代码
Posted
技术标签:
【中文标题】通过 NUnit 运行 C++ 代码【英文标题】:Running C++ code through NUnit 【发布时间】:2009-03-08 06:56:28 【问题描述】:我尝试使用 NUnit 来测试已经连接到 C++ 代码的 C# 代码(没有 NUnit,应用程序可以正常工作)。
在我的测试中,我通过 AppDomain.CurrentDomain.ExecuteAssembly(..) 运行 main 函数,但是当 C# 代码尝试与 C++“通信”时,它会引发异常并且测试崩溃。例外是 System.Reflection.TargetInvocationException 如果有人知道它为什么会发生它会非常有帮助...谢谢,Naama
【问题讨论】:
您是否尝试过使用调试器来隔离抛出该异常的代码位?是否在 C# 或 C++ 应用程序中引发了异常? 您是否必须在您的应用中的 app.config 中添加任何内容? 我已经使用了调试器,并且我隔离了异常发生的代码。当我试图在 c++ 中创建一个包含在 c# 对象中的对象时,就会发生这种情况。而且我没有在我的应用程序中的 app.config 中添加任何内容 NAAMA,请在您的问题中粘贴相关代码。我怀疑你的构造函数中抛出了异常。 TargetInvocationException 中是否有内部异常提供更多详细信息? 【参考方案1】:您的怀疑是正确的,它是在构造函数期间通过的,c# 中的构造函数正在尝试创建一个用 c++ 和 c++ 编写的对象(它已经被包装并在应用程序正常运行时完美运行)抛出异常的对象的构造函数。 然而这个应用程序非常复杂,但如果需要澄清,我将编写一个演示应用程序来象征真实的应用程序。
【讨论】:
【参考方案2】:很可能在您的 C++ 代码中,在类的构造函数中引发了异常。检查以确保您正确处理了异常,并且您向构造函数提供了正确的信息,因此不会引发异常。
【讨论】:
以上是关于通过 NUnit 运行 C++ 代码的主要内容,如果未能解决你的问题,请参考以下文章
使用参数并行运行 nunit 测试 (nunit 3.8.x)