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

时间:2011-01-12 13:25:23

标签: c# tdd resharper

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

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

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

  

JetBrains ReSharper 5.1 C#Edition
  在2010-10-15T15:51:30构建5.1.1753.4

     

许可:XXXXXXX
  插件:无。
  Visual Studio 9.0.21022.8。

     

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

谢谢, -M

4 个答案:

答案 0 :(得分:21)

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

Debugger.Launch();

然后正常运行测试。当代码执行到达该行时,您将获得安全弹出窗口(选择是)

alt text

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

alt text

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

答案 1 :(得分:21)

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

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

Error code: 89710016

Error message: 0

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

finding this link之后,通过将NUnit类库项目更改为x86(Properties -> Build -> Platform Target : x86)来解决问题

答案 2 :(得分:3)

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

  

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

将此设置为"强制测试以32位进程运行"

答案 3 :(得分:0)

更改为x86对我不起作用。

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

VS Pro 2017 15.7.6,R#2017.3.2