MSTest取消机制

时间:2014-07-24 12:11:00

标签: c# .net unit-testing task-parallel-library cancellation-token

是否有任何机制可以提供CancellationToken(或类似[TestInitialize]的属性)进行单元测试,可用于了解单元测试是否被取消?我找不到。

1 个答案:

答案 0 :(得分:1)

理论上,应该可以使用您自己的测试扩展(源自TestClassExtensionAttribute)来实现此目的,您将使用它来代替标准[TestClass]属性。

它需要部署/注册您的测试扩展程序(阅读"Extending the Visual Studio Unit Test Type, part 1"),这有点挑战。

这样您就可以访问TestExecution.OnTestStopping事件。在事件处理程序中,您可以请求取消CancellationTokenSource的某个实例。

由您决定如何使CancellationTokenSource.Token可用于测试方法本身。例如,您可以使用System.AppDomain.CurrentDomain.GetData。在这种情况下,您还需要处理TestExecution.BeforeTestInitialize并使用System.AppDomain.CurrentDomain.SetData来存储查找正确CancellationTokenSource所需的信息。您可能需要使用TestContext - 至 - CancellationTokenSource字典,以确保您取消正确的测试。