使用Resharper无法调试测试 - 无法启动调试器。

18

我无法使用Resharper-Debug选项在我的项目中调试测试。我已经看到很多人提出了这个问题,但是没有找到一个确切的解决方案来解决我的问题。 奇怪的是,如果我创建一个简单的单元测试样例项目,我就可以毫无问题地进行调试。然而,当我尝试在我的当前项目中做这个时,它就会简单地抛出一个对话框,上面写着“无法启动调试器”。 我已经与我的同事核对过这个问题,他们并没有遇到这个问题 :(

同时,当我运行测试时也没有任何问题。

这是一台XP机器,以下是Resharper的版本:

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

许可证持有人:XXXXXXX
插件:没有。
Visual Studio 9.0.21022.8.

版权所有 © 2003–2011 JetBrains s.r.o.。保留所有权利。

谢谢, -M


你正在使用哪个单元测试框架? - Jay
1
那么你的环境和同事们有什么不同呢?在本地应用数据的JetBrains文件夹下是否有任何错误日志? - Rup
4个回答

21

可能有人误闯至此,特别是我遇到了以下错误:

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

Error code: 89710016

Error message: 0

在使用R# 8.2和VS 2013专业版时,尝试调试NUnit测试时遇到问题。

查找了这个链接之后,通过将NUnit类库项目更改为x86(属性 -> 构建 -> 平台目标:x86)来解决该问题。


帮了我。VS 2015。R# 2016.3 - Artyom
对我也起作用了,VS 2015 14.0.25431.1,R# 10.0.2。 - BenAlabaster

21

我偶尔会遇到一些无法使用Resharper调试图标启动的测试(由于模拟对象或32位与64位的dll文件)。对我有效的解决方法是在测试中添加一个显式调用以启动调试器。

Debugger.Launch();

然后像平常一样运行测试。当代码执行到那一行时,将弹出一个安全提示框(选择是)。

alt text

然后会弹出一个Visual Studio选择框(选择你当前正在运行的Visual Studio版本)。

alt text

你将以调试模式进入你添加Debugger.Launch()行的位置的代码中。


解决了我的调试器只能半运行的问题:/非常奇怪。谢谢。 - Andrew Bullock

3

为了避免影响团队其他成员,不要更改项目的构建属性为x86,你可以告诉Resharper在32位进程中运行单元测试。

Resharper -> 选项 -> 工具 -> 单元测试 -> 常规 -> 默认平台架构

将其设置为“强制在32位进程中运行测试”。


也适用于我,VS 2015。 - Tawani

0

更改为x86对我没有起作用。

有效的方法是在VS(2017)中使用托管兼容性代码:工具->选项->调试->常规->勾选使用托管兼容性模式。

VS Pro 2017 15.7.6,R#2017.3.2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接