【发布时间】:2015-02-23 08:57:56
【问题描述】:
我在 Visual Studio 2013 测试框架中进行了 C# 单元测试,该测试框架使用 CLI 和本机代码。我想在执行 C# 单元测试时调查代码的本机部分。但是运行测试->调试->所有测试运行托管调试器,因此不会命中本机代码中的断点,并且我无法像在混合模式调试器下运行程序时那样从 C#->C++/CLI 代码跟踪。
例如,我的单元测试中的这段代码:
[TestMethod]
public void TestRoundTripEvaluate()
{
var obj = new MyCLIObject();
var roundtripped = RoundtripXml( obj );
// I would like to trace into here to see why Equals returns false.
// But the definition for MyCLIObject is in a CPP file and cannot be navigated
// to running the unit test because Visual Studio starts the debugger as "managed only"
// when using Test -> Debug -> All Tests
Assert.IsTrue( obj.Equals( roundtripped ) );
}
查看单元测试项目的项目设置,Debug下的一切都被禁用了,所以我不能选中Enable Native Code Debugging,它允许正常程序的这种行为。
如何在运行 VS C# 单元测试时启用混合模式调试或仅本机调试?
【问题讨论】:
-
我正在使用 vs2013 update 4 并且“启用本机代码调试”复选框可用。你用的是哪个版本的VS?
标签: c# unit-testing visual-studio-2013 mixed-mode