【问题标题】:Debugging unit test cases in VS 2008在 VS 2008 中调试单元测试用例
【发布时间】:2009-07-07 08:21:11
【问题描述】:

我正在尝试在 Visual Studio 2008 中调试我的一些单元测试,并注意到断点似乎并没有停止执行。

我有点假设它就像设置断点然后执行“测试 | 调试 | 当前上下文中的测试”一样简单......但这实际上从未达到我设置的断点。

是我做错了什么还是这只是坏了?

谢谢, 布兰登

【问题讨论】:

  • 这是 microsoft 测试框架还是您使用其他类似 NUnit 的东西?
  • 我通常只运行所有测试,然后加载程序集并启用断点。也许您的程序集由于某种原因无法加载(假设此处为 MS 框架)

标签: visual-studio unit-testing breakpoints


【解决方案1】:

在我首先手动附加到 aspnet_wp.exe 进程然后单击“调试测试”按钮之前,我遇到了同样的问题。然后我的断点终于被命中了。

【讨论】:

  • 当我试图附加它时,aspnet_wp.exe 没有出现。知道为什么吗?
【解决方案2】:

就我而言,System.Diagnostics.Debugger.Break() 并没有停留在测试方法上。

[TestClass]
public class ContactListTest
{
    #region "Constants"
    public const string COVERAGE = "CoverageService";

    public const string CompanyList = "CompanyList";
    public const string ContactList = "ContactList";
    #endregion

    [TestMethod]
    public void GetContactListTest()
    {
        System.Diagnostics.Debugger.Break();

        var ex = new ServiceFilterExpression(COVERAGE);
        ex.Expression = new OpBeginsWith("Type", ContactList);
        var result = ex.FetchData();

   } 
}

【讨论】:

    【解决方案3】:

    如果你使用 nUnit,你必须做以下事情

    使用您要测试的 DLL 启动 Nunit。 然后在 Visual Studio 中转到 工具 -> 附加到进程

    选择您的 nunit 进程并单击“附加”,然后它将在您的所有断点处停止

    玩得开心:-)

    【讨论】:

      【解决方案4】:

      VS2010、VS2008 和 VS2005 中 MSTEST 的官方 Microsoft workaround/kludge/zomg-I-can't-believe-they-can't-be-arsed-to-provide-this-after-4-years 是将 System.Diagnostics.Debugger.Break() 添加到要开始调试的单元测试中。这适用于所有具有单元测试项目引用的调试符号的项目。

      .NET 运行时会提示您转储到调试模式(或关闭正在执行的单元测试程序,或忽略调试行),并且(有时)允许您使用启动单元测试的 Visual Studio 实例来执行所以。您始终可以从新的 VS 实例进行调试。一旦您点击了 System.Diagnostics.Debugger.Break() 行,所有其他断点都将处于活动状态并被命中(假设它们在执行堆栈中)。

      【讨论】:

        【解决方案5】:

        检查以下内容:

        • 测试是否标有[TestClass][TestMethod]
        • 您是在运行调试模式还是发布模式构建? (除非有影响,否则不会有很大的不同)调试更好。
        • 您是在编译时优化还是不优化?没有更好
        • 尝试运行解决方案中的所有测试以检查是否遇到断点
        • 最后,也许您有错误,这就是您没有点击代码的原因?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-15
          • 2010-09-17
          • 2018-08-20
          • 1970-01-01
          • 1970-01-01
          • 2023-03-27
          相关资源
          最近更新 更多