Resharper/Nunit的Visual Studio调试问题

Pau*_*haw 9 debugging resharper nunit visual-studio-2010

我在Visual Studio中遇到了一个非常令人沮丧的问题.我正在使用Resharper,并在Nunit中编写测试.

如果我设置了一个断点,它会被击中,但是Step In/Over和Continue不起作用,测试永远不会完成.即使我设置了两个断点,继续也不会击中第二个.如果我在没有断点的情况下调试测试,它就会完好无损.

此外,经常和间歇地,当我尝试通过设置断点来调试测试时,我无法评估变量的内容,而是看到此消息:

Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.

我正在使用Visual Studio 2010.

如果您有什么想法,请告诉我...我已经在网上搜索过,但没有任何运气.

如有需要,很乐意提供更多信息.

编辑 - 方法示例

测试:

[Test]
public void OneRowAddedToSourceData() {
    //Factory just returns System.Data.DataTable with correct columns.
    var sourceData = new DataTableContainerFactory().GetTargetTableContainer(DataTypeNames.EventSharedEnd);

    //GetRow just returns a populated row.
    var row = GetRow(sourceData, 123456, 123,60, 31);

    sourceData.DataTable.Rows.Add(row);
    Assert.AreEqual(1, sourceData.DataTable.Rows.Count);
}
Run Code Online (Sandbox Code Playgroud)

当我在Assert语句中设置断点,并尝试评估数据表时,我遇到了这个问题.

更新2! 所以,我已将此问题缩小到Resharper Debugging.我将测试类更改为MSTest而不是NUnit,但在使用Resharper进行调试时仍然遇到上述问题.但是,当我使用内置的VS MSTest测试运行器运行测试时,所有问题都已消失!

现在我更喜欢使用NUnit和Resharper,所以如果有人能指出我允许Resharper正确调试的设置,我会很高兴!

Joe*_*eau 5

我有一个可能的解决方案,尽管有一个警告.做了一些搜索并浏览了这个博客项目.它建议关闭Enable property evaluation and other implicit function callsTools->Options->Debugging->General.我把它关了,我现在可以进入以前导致这个问题的项目了.

需要注意的是,您以前看到的所有自动评估的属性现在都没有显示出来.相反,它说明Implicit function evaluation is turned off by user.你需要做的就是点击属性上的刷新按钮,你可以看到值,但我还没有决定这是否是我愿意做出的权衡.