c# - MSTest取消机制

标签 c# .net unit-testing task-parallel-library cancellation-token

是否有任何机制为单元测试提供 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/

相关文章:

php - 给 PHP 对象类型参数一个默认值

c++ - 如何使用 Eclipse 处理 Boost.Test 输出

c# - Xamarin HttpClient.PostAsync 任务在 Android 中超时,在 iOS 中有效

C# Web api 返回列表对象的列表

c# - 获取有序字典中的最后一项?

Java LinkedList 上一个 下一个

c# - 如何在异步加载中订购 MVC 包?

c# - 将参数传递给使用 MSTest.exe 从命令行运行的编码 UI 测试

c# - 如何在 .NET 中在运行时定义属性的类型?

python - 如何使用模拟来 stub 方法装饰器?