2011-01-12 187 views
16

我无法在我的项目中使用Resharper-Debug选项来调试我的测试。我看到很多人提出这个问题,但没有得到解决我的问题的坚实建议。 奇怪的是,如果我创建一个示例项目并编写一个简单的单元测试,我就能够调试它,而不会有任何问题。但是,当我尝试在当前项目中执行此操作时,它只是抛出一个对话框“无法启动调试”。我已经跟我的同龄人检查这一点,他们面临的简化版,这个问题:(无法使用Resharper调试测试 - 无法启动调试器

我也没有任何问题,运行测试一段时间。

这是一个XP的机器和以下是该版本的ReSharper的:

JetBrains ReSharper 5.1 C# Edition
Build 5.1.1753.4 on 2010-10-15T15:51:30

Licensed to: XXXXXXX
Plugins: none.
Visual Studio 9.0.21022.8.

Copyright © 2003–2011 JetBrains s.r.o.. All rights reserved.

感谢, -M

+0

“强制测试,在32位进程中运行”? – Jay 2011-01-12 15:59:42

+1

那么你的环境和你的同龄人有什么不同?根据本地应用程序数据,JetBrains是否有任何错误日志? – Rup 2011-01-12 17:50:08

回答

21

我偶尔会遇到无法使用Resharper调试图标启动的测试(由于模拟对象或32 vs 64位dll)。一个适用于我的解决方案是添加一个明确的调用来启动调试器在测试中

Debugger.Launch(); 

然后就像平常一样运行测试。当代码执行打那行,你得到一个安全弹出窗口(挑是)

alt text

然后一个Visual Studio选择弹出(选择你当前运行Visual Studio)。

alt text

你会在调试模式下的位置中添加Debugger.Launch()线下降到您的代码。

+0

解决了我的调试器排序只有一半的问题:/很奇怪。谢谢 – 2013-12-12 15:58:04

20

可能使用的人绊倒在这里,特别是,我遇到了错误:

--------------------------- 
ReSharper – Unit Testing 
--------------------------- 
Cannot launch debugger. 

Error code: 89710016 

Error message: 0 

在VS 2013专业版,使用R#8.2的时候尝试调试NUnit的测试时。

finding this link后,通过改变NUnit的类库项目86(Properties -> Build -> Platform Target : x86

1

,而不是更改项目的生成属性是x86(这可能会影响其他团队成员,如果在一个团队中工作解决问题),您可以告诉Resharper以32位过程运行单元测试。

Resharper -> Options -> Tools -> Unit Testing ->General -> Default Platform Architecture

设置这是您使用的单元测试框架