有没有什么机制可以为单元测试提供CancellationToken (或者像TestInitialize这样的属性),可以用来理解单元测试被取消了?我找不到。
发布于 2014-07-25 20:05:43
从理论上讲,应该可以使用您自己的测试扩展(从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字典,以确保您取消了正确的测试。
https://stackoverflow.com/questions/24933333
复制相似问题