【问题标题】:Visual Studio: Customizing content of Test Results window column "error message"Visual Studio:自定义测试结果窗口列“错误消息”的内容
【发布时间】:2017-01-24 09:57:02
【问题描述】:

我正在为我的一个项目使用 TDD。目前定义了 90 个测试,但实际实现的只有 70 个,其余的只是抛出 NotImplementedEcxception 实例。

我的问题:在 VS 的“测试结果”窗口中,我一目了然地无法区分已实施但错误的测试和尚未实施的测试,错误消息列仅显示“测试方法 xyz 已抛出例外”。您必须打开弹出窗口并调用“查看测试结果详细信息”才能查看...详细信息。

是否有可能影响此错误消息列的填充方式?通过 Assert 类抛出的异常已经被处理,否则您可以快速区分。我想对NotImplementedExceptions 进行类似的处理。

【问题讨论】:

    标签: c# unit-testing visual-studio-2010


    【解决方案1】:

    如果断言已经提供了您想要的行为,那么为什么要尝试重新发明现有功能。您可以用Assert.Fail 替换未实现的异常并包含not implemented 消息。

    Assert.Fail("Not Implemented");
    

    【讨论】:

    • 是的,这将是一种解决方法(我已经使用 AssertFailedException 的后代采用相同的方式)。但是,如果它更优雅,那就太好了。从语义的角度来看,抛出 NotImplementedExceptions 是绝对正确的。
    • 试图理解你最后的评论。这是否意味着您创建了自己的从 AssertFailedException 派生的 NotImplementedException 实现?
    • 我当前的解决方法是有一个派生自 AssertFailedException 的后代“TestNotImplementedException”。但我不想告诉所有开发人员“在处理单元测试时使用它而不是常见的 NotImplementedException”,因为它只是不直观。
    • 现在我明白了。问题是测试框架是为查找断言失败异常而构建的。没有尝试自己重写框架,您实施的当前解决方法就是要走的路。恕我直言TestNotImplementedException 仍然很直观,因为测试尚未实施,该测试特定于为其创建异常的域。
    • 当然,名字没问题,但你必须知道它的存在。对于开发人员来说,这只是另一个“最佳实践”,必须学习、记录、交流和遵循,使复杂的工作场所变得更加复杂(尽管这一课并不难学)。我尽量避免这些情况。
    猜你喜欢
    • 1970-01-01
    • 2012-07-06
    • 2017-08-06
    • 2019-11-05
    • 2011-06-03
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2019-02-01
    相关资源
    最近更新 更多