在NUNIT中的UnitTestOutcome.Timeout等价物

时间:2018-04-18 07:02:23

标签: nunit mstest

我正在将项目从MSTest迁移到NUnit。 我有一个场景,我需要执行以下条件

testContext.CurrentTestOutcome.Equals(UnitTestOutcome.Timeout)

你能否建议NUnit等同于MSTest UnitTestOutcome.Timeout

2 个答案:

答案 0 :(得分:1)

问题并不完全清楚。 @Francesco B.已经将其解释为含义"我如何指定超时?"并据此回答。

我理解你要问"我如何发现我的测试已经超时了?"简短的回答 - 您无法在测试中检测到它。它只能由正在执行测试的跑步者检测到。

更长的答案......

您可以检查拆解中的测试上下文,以查看使用TestContext.CurrentContext.Result.Outcome进行测试的结果。如果您的拆卸需要知道测试失败,这将非常有用。

然而,你永远不会看到"超时的结果"因为...

  1. 您的拆卸包含在Timeout属性计时的内容中。
  2. 如果测试方法触发超时,则无法调用您的拆解。
  3. 即使前两点不正确,也没有"超时"结果。测试被标记为失败,只有消息表明它已超时。
  4. 当然,如果我误解了这个问题并且你只是想知道如何指定超时,那么另一个答案就是你想要的。 : - )

答案 1 :(得分:0)

根据official documentation,您可以使用Timeout属性:

[Test, Timeout(2000)]
public void PotentiallyLongRunningTest()
{
    ...
}

当然,您必须以毫秒为单位提供超时值;超过该限制,您的测试将被列为失败。

有一种已知的"罕见的" NUnit不尊重超时的情况,已经discussed