是否有任何机制为单元测试提供 CancellationToken(或者可能是 [TestInitialize] 之类的属性),可以用来理解单元测试被取消?我找不到。
问问题
1347 次
1 回答
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
,以确保您取消了正确的测试。
于 2014-07-25T12:05:42.537 回答