MSTest取消机制

Dmi*_*hin 6 .net c# unit-testing task-parallel-library cancellation-token

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

nos*_*tio 3

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

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

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

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