通过 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++ 代码的主要内容,如果未能解决你的问题,请参考以下文章

无法通过控制台运行我的 SpecFlow 功能代码

使用参数并行运行 nunit 测试 (nunit 3.8.x)

即使在配置文件中使用 .NET 4.0 后,nunit 代理也会挂起

(30)C#使用NUNIT单元测试

使用 NUnit 尽早初始化 log4Net

使用 NUnit 时,我应该如何在运行时修改 app.config?