【问题标题】:Unit Test debugging steps randomly through the code单元测试调试步骤随机通过代码
【发布时间】:2013-09-02 14:40:59
【问题描述】:

我们有一个项目最近从 VS2010(使用 .net Framework 3.5)升级到 VS2012(使用 .net Framework 4)。我们使用 TFS,因此可以使用旧版本。

在调试 VS2010 版本的构建断点时,<TestMethod()> 方法将起作用,在被调用代码上单步执行和断点有效,并且从头到尾单步执行代码。

在 2012 版本中,断点仅在 <TestMethod()> 代码中真正起作用。一旦代码离开<TestMethod()> 区域,事情就会变得奇怪。步入并通过代码似乎只是简单地步入代码中的随机行。值的解析很奇怪,调试器似乎在很大程度上随机地向前跳动代码。一旦调试器返回到<TestMethod()>代码区,一切就恢复正常了,即使调试过程中显示的值都很奇怪,被调用的函数也会返回正确的结果。

我真的想不出如何比这更好地描述正在发生的事情。我不负责构建软件,而那些不知道他们所做的任何更改可能会导致此问题的人。

这听起来对任何人来说是否足够熟悉,以至于他们可以建议可能已经更改了哪些设置来产生这种行为,或者我需要在 .net 4 下设置什么才能让单元测试再次工作?

【问题讨论】:

    标签: .net visual-studio-2010 unit-testing debugging visual-studio-2012


    【解决方案1】:

    当调试器使用的源代码与用于编译您正在调试的程序集的源代码不同时,通常会发生这种情况。

    【讨论】:

    • 发生这种情况时通常不会有警告消息吗?
    • @Frosty840:通常是的,但是AFAIR,你可以禁用它。
    • 人力资源部。我刚刚去了,故意破坏了测试,调试了测试,得到了奇怪的,跳跃式的代码步进,测试失败了。解开代码,再次执行,同样的怪异,测试通过了。它似乎在每次测试之间都在重建。据我所知,代码应该是最新的。
    • @Frosty840:您是否通过更改测试代码来破坏测试?还是测试验证的实现?
    • 两者。分开和一起(改变一个,改变另一个,恢复第一个更改,恢复第二个,每次重新测试)。没有喜悦。步入仍然是迷幻的。 :(
    猜你喜欢
    • 2011-05-05
    • 2011-08-16
    • 2011-03-20
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 2016-02-23
    • 2016-04-17
    相关资源
    最近更新 更多