我正在.NET中实现我自己的测试框架,并遇到了如何正确停止正在运行的测试执行的问题。正在执行的测试方法显然不合作,因此我无法使用CancellationTokenSource,并且已弃用Thread.Abort()。现有的测试框架如NUnit如何处理这个问题?测试框架如何停止运行测试的执行?
0
A
回答
1
经过仔细阅读源代码,似乎Thread.Abort()
是选择的机制。乍一看这很有道理,因为跑步者需要执行任意代码,然后立即杀死它。
查看NUnit的源代码(v3),当指定超时值时,它强制测试onto a separate thread。然后,如果测试超过其超时值,则通过Thread.Abort()
调用is killed。
与MbUnit(v3)类似,它在separate thread using a sandbox上运行测试,创建System.Threading.Timer
。当该定时器到期时,它会调用Abort()
on the sandbox,在运行测试中调用Thread.Abort()
。
另外,according to Reference Source我没有看到Thread.Abort()
被标记为废弃/弃用。
相关问题
- 1. 停止Robotium测试执行
- 2. 运行测试,而测试框架
- 3. Django停止运行测试
- 4. 如何在* n *失败测试后停止MsTest测试执行
- 5. 如何在特定测试失败时停止运行测试?
- 6. 如果测试失败,停止FlexUnit测试运行?
- 7. xUnit:从代码停止测试执行
- 8. Ruby测试框架下执行特定的测试
- 9. 如何停止执行测试,如果2个或更多的测试失败
- 10. 运行测试用例TestNG的框架
- 11. 停止运行安装失败测试
- 12. 停止运行黄瓜测试功能
- 13. 从运行摩卡停止测试
- 14. Silverlight的单元测试框架重新运行测试
- 15. 单元测试DAL - 停止运行单元测试时连接
- 16. 如何在运行框架中运行JUnit测试用例2.3.2
- 17. 无法运行Grinder Java测试框架
- 18. Phing运行Yii框架测试
- 19. 运行PHPUnit测试Yii框架
- 20. Windows Phone工具包测试框架挂起运行测试
- 21. 单元测试框架:在新进程中运行测试
- 22. 在测试模式下运行时显示Play框架测试
- 23. 如何在执行另一个测试后执行测试?
- 24. 如何防止mvn码头:从执行测试阶段运行?
- 25. 如何终止摩卡测试运行?
- 26. 如何在运行测试类时停止执行托管触发器?
- 27. 只执行JUnit测试的Ant任务不会运行测试
- 28. 如何在Ruby测试::单位框架运行单个早该环境测试
- 29. 如何停止运行两次测试的maven?
- 30. 如何在最后停止运行测试单元的rspec?
好吧,不推荐使用,但是在任何地方您都应该阅读它,因为它很危险并且可能导致无效状态,所以我想我没有其他选择。 – user2849936