MSTest取消机制

本文关键字:机制 取消 MSTest | 更新日期: 2023-09-27 18:14:40

是否有任何机制,为单元测试提供CancellationToken(或者像[TestInitialize]这样的属性),可以用来理解单元测试被取消?

MSTest取消机制

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

这有点挑战性,因为它需要部署/注册您的测试扩展(请阅读"扩展Visual Studio单元测试类型,第1部分")。

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

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