使用NUnit调试vs2010中的本机/托管c++

Debugging native/managed C++ in VS 2010 with NUnit

本文关键字:本机 托管 c++ NUnit 调试 vs2010 使用      更新时间:2023-10-16

是否有一种方法可以设置断点,并使用NUnit与本地c++和托管c++的混合项目逐步通过它们?

我将SUT(软件在测)配置为静态库(本机c++)我将我的单元测试套件作为一个单独的项目配置为依赖于我先前声明的库的dll。我还添加了上述库作为我的单元测试项目的参考。

我的测试在NUnit中运行得很好,只是断点不起作用。

再次,是否有一种方法可以让断点与NUnit一起使用本机/托管c++ ?

最方便的方法是设置一个自定义工具条目,指定NUnit的路径作为命令。对于VS2003 c#项目,可以使用$(TargetPath)作为参数,$(TargetDir)作为初始目录。

在Visual Studio VS2005中,这变得有点困难,因为那个版本改变了'Target'宏的含义,所以它们现在指向中间'obj'目录,而不是'bin'目录中的最终输出。以下是在两个版本中都可以使用的一些替代方法:

$(ProjectDir)$(ProjectFileName)打开VS项目而不是程序集。如果你使用这种方法,一定要相应地重命名你的配置文件,并把它放在与VS项目文件相同的目录下。

$(ProjectDir)bin/Debug/$(TargetName)$(TargetExt)直接运行程序集。注意,这需要硬编码路径的一部分,包括配置。

如果您想调试测试,请在启动NUnit后使用Visual Studio debug | Processes…菜单项附加到它,并在运行测试之前根据需要在测试代码中设置断点。