18

我无法在我的项目中使用 Resharper-Debug 选项来调试我的测试。我已经看到很多人提出了这个问题,但还没有找到解决我问题的可靠建议。奇怪的是,如果我创建一个示例项目并编写一个简单的单元测试,我可以毫无问题地对其进行调试。但是,当我尝试在当前项目中执行此操作时,它只会抛出一个对话框,上面写着“无法启动调试器”。我已经与我的同行进行了检查,他们没有遇到这个问题:(

此外,我在运行测试时没有任何问题。

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

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

许可:XXXXXXX
插件:无。
视觉工作室 9.0.21022.8。

版权所有 © 2003–2011 JetBrains sro。版权所有。

谢谢,-M

4

4 回答 4

21

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

Debugger.Launch();

然后正常运行测试。当代码执行到该行时,您会收到一个安全弹出窗口(选择是)

替代文字

然后是一个视觉工作室选择弹出窗口(选择你当前正在运行的视觉工作室)。

替代文字

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

于 2011-01-12T16:46:58.230 回答
21

可能对在这里绊倒的人有用,具体来说,我遇到了错误:

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

Error code: 89710016

Error message: 0

在尝试调试 NUnit 测试时在 VS 2013 Pro 上使用 R# 8.2 时。

找到此链接后,通过将 NUnit 类库项目更改为 x86 ( Properties -> Build -> Platform Target : x86)解决了问题

于 2015-06-16T15:15:27.433 回答
3

您可以告诉 Resharper 在 32 位进程中运行单元测试,而不是将项目的构建属性更改为 x86(如果在团队中工作,这可能会影响其他团队成员)。

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

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

于 2018-01-31T13:54:26.730 回答
0

更改为 x86 对我不起作用。

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

VS 专业版 2017 15.7.6,R#2017.3.2

于 2018-08-10T21:35:44.663 回答