【发布时间】:2020-08-31 07:31:35
【问题描述】:
我有一个进程运行多个线程与软件和硬件组件通信。
出于测试目的,需要模拟断开连接和超时。进程执行保持模拟所有子组件的通信超时。目前这可以通过在调试模式下运行并设置断点来完成。在断点时,所有线程都被暂停执行并且所有超时都会发生。 但在自动化测试中,断点不是一种选择。
如何才能让包括所有正在运行的线程在内的整个进程保持 x 秒?
编辑#1:我正在寻找一种通用方法来保持整个过程的执行,包括所有正在运行的任务(线程)——一种没有断点的真正断点行为。而不是一种自动恢复流程的方式。
编辑#2:This 问题的答案可能有效。似乎需要进行一些调整。
【问题讨论】:
-
x-y 问题。真的应该是“如何故意诱导超时以进行测试”。
-
“如何为测试故意引入超时”问题有很多答案。最好是创建一个在需要时会导致超时的模拟。可悲的是,这不是我的选择。关闭进程/端口可能会导致断开连接,但是恢复将是不同的/不可能的。我正在寻找更通用的解决方案。
标签: c# multithreading process delayed-execution