我在Visual Studio中遇到了一个非常令人沮丧的问题。我正在使用Resharper编写Nunit测试。
如果我设置断点,它确实会被触发,但是单步跟踪/跳过和继续不起作用,测试也永远不会结束。即使我设置了两个断点,继续也无法触发第二个断点。如果我没有设置断点调试测试,测试就能正常完成。
此外,经常出现间歇性的情况,当我尝试通过设置断点来调试测试时,我不能评估变量的内容,而是看到以下消息:Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.
我正在使用Visual Studio 2010。
如果您有任何想法,请告诉我需要查看什么... 我已经在网上搜索了很多,但没有找到解决办法。
如需进一步信息,请随时联系我。
编辑 - 方法示例:
测试:
如果我设置断点,它确实会被触发,但是单步跟踪/跳过和继续不起作用,测试也永远不会结束。即使我设置了两个断点,继续也无法触发第二个断点。如果我没有设置断点调试测试,测试就能正常完成。
此外,经常出现间歇性的情况,当我尝试通过设置断点来调试测试时,我不能评估变量的内容,而是看到以下消息: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);
}
当我在Assert语句上设置断点并尝试评估数据表时,出现了这个问题。
更新2! 因此,我已将此问题缩小到Resharper调试。我将一个测试类更改为MSTest而不是NUnit,但仍然在使用Resharper进行调试时遇到了以上两个问题。然而,当我使用内置的VS MSTest测试运行器来运行测试时,所有问题都已解决!
现在我更喜欢使用NUnit和Resharper,所以如果有人能指出一个设置,让Resharper可以正确地调试,我会非常高兴!
List<>
或类似的东西(Dictionary<,>
),我也会遇到这个问题。如果你可以避免引起这个消息的计算,你就可以继续调试。目前,我只知道当我收到这个错误消息时,我会停止调试并重新启动,然后尝试不评估导致问题的变量。真希望知道如何防止这种情况发生。 - Joel Rondeau