如何:在运行智能设备单元测试时进行调试
更新:2007 年 11 月
智能设备单元测试不支持自动调试,因为测试代码是在设备或仿真程序上运行,而不是在桌面计算机上运行。选择“调试”菜单中的“启动调试”、“测试视图”窗口中的“调试选定内容”或者“测试列表编辑器”中的“调试选中的测试”将仅运行测试而不会调试测试。本主题描述如何通过手动将调试器附加到运行的智能设备单元测试来进行调试。
在下面的过程中,您将创建一个智能设备单元测试,为进行调试准备设备,在测试中添加断点,并调试测试。
说明: |
---|
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置。 |
在运行智能设备单元测试时进行调试
创建要测试的智能设备应用程序以及用于测试该程序的智能设备单元测试。
有关更多信息,请参见演练:创建和运行智能设备单元测试。
若要在设备上启用托管调试,请使用 Visual Studio 远程注册表编辑器在设备的注册表中创建以下各项:
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework 下面创建一个名为 Managed Debugger 的新项。
在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\Managed Debugger 下面创建一个名为 AttachEnabled 且值为 1 的新 DWORD 值。
通过在智能设备单元测试中添加语句 System.Diagnostics.Debugger.Break() 来设置断点。
说明: 代码中的断点只有在位于此 System.Diagnostics.Debugger.Break() 语句之后才会被命中。
启动测试。
为此,请在“测试视图”窗口中,右击要运行的测试,然后单击“运行选定内容”。
等待测试主机命中您添加到单元测试中的断点。命中时,设备将显示消息:“SmartDeviceTestHost.exe 中出现了一个用户断点。”[A user break has occurred in SmartDeviceTestHost.exe.]
附加到智能设备测试宿主进程:
在“调试”菜单上单击“附加到进程”。
将“传输”更改为“智能设备”。
将“限定符”更改为运行测试的设备。
单击“可用进程”列表中的“SmartDeviceTestHost.exe”。
单击“附加”。
Visual Studio 将附加到该进程,执行将在 System.Diagnostics.Debugger.Break() 语句处暂停。可单击“调试”菜单上的“继续”或按 F5 使执行继续至下一个断点。
说明: 完成调试后,移除 System.Diagnostics.Debugger.Break() 语句以及托管调试器注册表项。否则,每次运行测试时,都会出现断点对话框。