UnitTestOutcome.Timeout 等效于 NUNIT
UnitTestOutcome.Timeout equivalent in NUNIT
我正在将我们的项目从 MSTest 迁移到 NUnit。
我有一个场景需要执行以下条件
testContext.CurrentTestOutcome.Equals(UnitTestOutcome.Timeout)
能否推荐与 MSTest UnitTestOutcome.Timeout
等效的 NUnit?
根据 official documentation,您可以使用 Timeout
属性:
[Test, Timeout(2000)]
public void PotentiallyLongRunningTest()
{
...
}
当然,您必须提供以毫秒为单位的超时值;超过该限制,您的测试将被列为失败。
有一个已知的 "rare" 案例,其中 NUnit 不遵守超时,这已经 discussed。
问题不是很清楚。 @Francesco B. 已经将其解释为 "How can I specify a timeout?" 的意思并做出了相应的回答。
我理解你在问 "How can I detect that my test has timed out?" 简短的回答 - 你无法在测试本身中检测到它。它只能由正在执行您的测试的运行程序检测到。
更长的答案...
您可以检查拆解中的测试上下文,以查看使用 TestContext.CurrentContext.Result.Outcome
的测试结果。如果您的拆解需要知道测试失败,这将很有用。
但是,您永远不会看到 "timed out" 的结果,因为...
- 您的拆解包含在由 Timeout 属性计时的内容中。
- 如果测试方法触发超时,您的拆解将不会被调用。
- 即使前两点不正确,也没有 "timed out" 结果。测试被标记为失败,只有消息表明它已超时。
当然,如果我误解了问题而你只是想知道如何指定超时,其他答案就是你想要的。 :-)
我正在将我们的项目从 MSTest 迁移到 NUnit。 我有一个场景需要执行以下条件
testContext.CurrentTestOutcome.Equals(UnitTestOutcome.Timeout)
能否推荐与 MSTest UnitTestOutcome.Timeout
等效的 NUnit?
根据 official documentation,您可以使用 Timeout
属性:
[Test, Timeout(2000)]
public void PotentiallyLongRunningTest()
{
...
}
当然,您必须提供以毫秒为单位的超时值;超过该限制,您的测试将被列为失败。
有一个已知的 "rare" 案例,其中 NUnit 不遵守超时,这已经 discussed。
问题不是很清楚。 @Francesco B. 已经将其解释为 "How can I specify a timeout?" 的意思并做出了相应的回答。
我理解你在问 "How can I detect that my test has timed out?" 简短的回答 - 你无法在测试本身中检测到它。它只能由正在执行您的测试的运行程序检测到。
更长的答案...
您可以检查拆解中的测试上下文,以查看使用 TestContext.CurrentContext.Result.Outcome
的测试结果。如果您的拆解需要知道测试失败,这将很有用。
但是,您永远不会看到 "timed out" 的结果,因为...
- 您的拆解包含在由 Timeout 属性计时的内容中。
- 如果测试方法触发超时,您的拆解将不会被调用。
- 即使前两点不正确,也没有 "timed out" 结果。测试被标记为失败,只有消息表明它已超时。
当然,如果我误解了问题而你只是想知道如何指定超时,其他答案就是你想要的。 :-)