2011-03-05 158 views
29

我想单元测试使用自定义事件的用户组件。当不使用VS单元测试框架debug.assert成功时,在VS单元测试框架做同样的事情时,assert失败,这是不合逻辑的,所以我想在使用VS框架进行单元测试时进行调试。但似乎我不能,因为代码不会在我设置的调试点暂停。运行VS单元测试时可以进行调试吗?

那么有没有办法强制它在调试点暂停呢?

更新:我的意思不是在测试项目本身,而是在运行测试项目的目标项目。

回答

31

P. Campbell的答案并不完全正确。如果您开始调试项目(如WCF服务站点),则无法启动任何单元测试或调试模式。这样做的选项在Visual Studio 2012中只是变灰。

这意味着您无法从单元测试中调试进程外代码。您只能调试由单元测试直接调用的代码。

这是他们现在需要修复的VS2012中的一个主要问题。

+0

我希望我可以upvote你的答案二十多次 – Eric 2014-07-23 17:14:33

+1

Visual Studio 2013更新3仍然有这个错误。 – 2014-11-18 21:43:35

+1

Visual Studio 2013更新4 - 同样的问题 – AlphaOmega 2015-01-22 16:33:23

57

,使用Visual Studio Test项目,您可以设置断点并逐步执行代码。

一定要运行您的测试与调试菜单 - 测试 - >调试 - >在当前上下文中的测试。 对于任何给定的测试类别或测试方法,请使用键盘快捷键Ctrl-RCtrl-T。当您的光标位于方法(,测试方法或测试覆盖的代码)时,它将在该方法的任何断点或代码执行路径中任何位置的任何断点处断开。如果你的光标在类上,或者在测试方法之间,它会运行类中的所有测试。如上所述,断点将在这里命中。

+0

我忘了我的意思不是在测试项目,而是在焦油geted Project – user310291 2011-03-05 00:38:45

+0

@user:是的,无论是在测试方法中,还是在下游测试代码中,都会触发任何断点。 – 2011-03-05 00:40:56

+0

只是添加到@user的评论,如果你调试单元测试,你将能够停止和调试任何代码,测试或测试代码AS LONG,因为你有测试代码源或调试器信息,所以你wouldnt能够跳进没有符号文件的引用dll – 2011-03-05 05:32:06

3

在VS2015中,选择:

测试 - >调试 - >所有测试

或者你可以突出显示在编辑器中特定的测试,并选择

测试 - >调试 - >选择测试

相关问题