我在 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);
}
当我在 Assert 语句上设置断点并尝试评估数据表时,我遇到了这个问题。
更新 2! 因此,我已将这个问题缩小到 Resharper 调试。我将测试类更改为 MSTest 而不是 NUnit,但在使用 Resharper 进行调试时仍然遇到上述问题。但是,当我使用内置的 VS MSTest 测试运行器运行测试时,所有问题都消失了!
现在我更喜欢使用 NUnit 和 Resharper,所以如果有人能指出一个允许 Resharper 正确调试的设置,我会非常高兴!