是否有任何机制为单元测试提供 CancellationToken(或者可能是 [TestInitialize] 之类的属性),可用于了解单元测试已取消?我找不到。
最佳答案
理论上,应该可以使用您自己的测试扩展(派生自 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
-to-CancellationTokenSource
的字典,以确保您正在取消正确的测试。
关于c# - MSTest取消机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24933333/