【发布时间】:2017-07-31 18:05:03
【问题描述】:
我有一个运行多个测试文件的 GUI。 所有的测试都是python文件,GUI使用从线程运行的子进程一一运行。
在 GUI 中,用户可以停止运行测试的机器。 我已经发现了如何为此目的杀死一个子进程及其工作原理。 见Killing sub process that run inside a thread
现在,我有另一个问题。 测试打开了很多我必须有序关闭的实例。 当我使用 kill() 方法时,所有实例都没有关闭,我无法运行进一步的测试。 即在用户停止之前我在测试中使用的 COM 端口仍然被占用,并阻止我运行更多测试。
解决这个问题的唯一方法是关闭 GUI 并重新开始。
简而言之,我需要一种随时终止子进程的方法,但仍然关闭所有实例,如 sys.exit() 将执行或与关闭他的 GUI 具有相同的效果。 我尝试使用 wait(timeout) 但除非我使用错误,否则它不会成功。
我可以在测试中使用某种中断来调用测试中的某些方法,从而有序地关闭它吗?
【问题讨论】:
标签: python python-3.x subprocess