MSTest取消机制
本文关键字:机制 取消 MSTest | 更新日期: 2023-09-27 18:14:40
是否有任何机制,为单元测试提供CancellationToken(或者像[TestInitialize]这样的属性),可以用来理解单元测试被取消?
理论上,应该可以使用您自己的测试扩展(来自TestClassExtensionAttribute
)来实现这一点,您可以使用它来代替标准的[TestClass]
属性。
这有点挑战性,因为它需要部署/注册您的测试扩展(请阅读"扩展Visual Studio单元测试类型,第1部分")。
这将使您能够访问TestExecution.OnTestStopping
事件。在事件处理程序中,您可以请求取消CancellationTokenSource
的某个实例。
如何使CancellationTokenSource.Token
对测试方法本身可用取决于您。例如,您可以使用System.AppDomain.CurrentDomain.GetData
。在这种情况下,您还需要处理TestExecution.BeforeTestInitialize
并使用System.AppDomain.CurrentDomain.SetData
来存储查找正确的CancellationTokenSource
所需的信息。您可能需要一个TestContext
到CancellationTokenSource
的字典,以确保您取消的是正确的测试。