在 Visual Studio 2015 单元测试调试器中打开后进入错误的功能

After opening in Visual Studio 2015 unit test debugger steps in to wrong function

我有一个 nUnit 测试,我将项目从 VS 2012 升级到 2015。现在在调试单元测试时,调试器会进入错误的函数。测试仍然通过,但调试不起作用。

当我到达 getAString = newClass.ReturnString() 时,调试器会进入 .ReturnString 和 .ReturnInt,然后当我到达 Dim getAnInt = newClass.ReturnInt() 时,它不会进入完全融入其中。 return 都不是值。为什么当我调用第一个时它 运行 两个都起作用?下面的代码显然没有并行性。当我在 nUnit 中调试时,它进入正确的函数并且它们都 return 一个值,当我在 Resharper 或 Nunit 测试适配器中调试时,调试器不起作用。

Imports NUnit.Framework

<TestFixture()>
Public Class Class1

<Test()>
Public Sub Test_Across_DateRanges()


    Dim newClass As New MyNewClass

    Dim getAnInt = newClass.ReturnInt()

    Dim getAString = newClass.ReturnString()

    Assert.That(getAnInt = 5)
    Assert.That(getAString = "Why is this breakpoint being hit?")

End Sub

End Class



Public Class MyNewClass
    Public Function ReturnInt() As Integer
        Return 5
    End Function
    Public Function ReturnString() As String
        Return "Why is this breakpoint being hit?"
    End Function

End Class

我的症状有一些根本原因,并有一些解决方法。

在解决方案资源管理器中右键单击解决方案 > 属性 > 确保将 eeeeeverything 设置为调试/任何 CPU。 Select 配置属性和顶行将变为活动状态。 Select 调试,任意 CPU,然后打开配置管理器并仔细检查!并在项目上下文中设置 Debug / Any CPU。 这里的大部分内容:Visual Studio 2015 RTM - Debugging not working 确保在 .sln 和 vbproj 文件上选择“文件”>“另存为...”。

我很确定这是对 Any CPU 的构建。

还有其他要检查的东西: