【发布时间】:2012-09-20 12:26:28
【问题描述】:
我遇到了一种情况,我正在使用单元测试来执行执行测试的外部工具。我可以从工具的退出代码中确定测试是否通过、失败或超时。
是否有某种方法可以使单元测试失败,从而将测试结果设置为超时而不是失败?
我尝试抛出 TimeoutException,但这与使用 Assert 的结果相同。
编辑: 我们将单元测试与 TFS 中的测试用例联系起来。在 Microsoft 测试中心中,测试运行中的测试可以有多种状态。其中之一是超时状态。我正在尝试使我的测试失败,以便它正确显示在这种状态下,并且不会与失败的测试用例混在一起。
【问题讨论】:
-
如果您的测试依赖于外部工具来完成某些工作,那么它就不是单元测试。理想情况下,您将模拟外部工具,以便您可以测试您的代码,而不管他们的代码是否按预期工作。
-
@Jamie:那是吹毛求疵。他可能正在做一个集成测试,但(像许多其他人一样)称它为单元测试只是因为它是在测试运行器中运行的。
-
他可能是@erikkallen,但他也可能打算将其编写为单元测试,但不完全掌握嘲笑或知道这甚至是一件要做的事情。在后者的情况下,我的评论可能会将 OP 推向一个有用的方向,如果没有,也不会造成任何伤害。
-
@erikkallen 是正确的,我们将这些测试作为集成/加载/...测试运行。
-
我称它为单元测试,因为这是我执行测试的机制。