繁体   English   中英

如何优雅地停止python unittest?

[英]How to gracefully stop python unittest?

我正在使用python unittest框架来测试外部设备。 在这个特殊的用例中,我实际上希望python进行耐力测试,这将需要几天的时间。 (一次测试只需要几分钟,但是会经常重复。)

在这种情况下,我希望能够正常停止测试,并在以后恢复或重新启动它。 我可以稍后再重新启动它,但是现在我无法正常停止。

通过顺畅的停止,我可以设想如下内容:按下Ctrl-C ,最后一次测试完成,并返回结果。

有没有内置的方法来实现这一目标? 如果没有,我如何实现?

查看unittest 命令行文档

在测试运行期间, Control-C等待当前测试结束,然后报告到目前为止的所有结果。 第二个Control-C引发正常的KeyboardInterrupt异常。

因此,您可以捕获KeyboardInterrupt异常,以在报告到目前为止的结果后将下一个测试置于睡眠循环。 然后,睡眠循环可以等待其他按键来中止整个测试或继续进行。

通过仔细查看unittest文档,我找到了解决方案:通过调用:

unittest.installHandler()

已安装Ctrl-C的信号处理程序,并且执行的所有结果如下:

unittest.registerResult(result)

将在Ctrl-C的情况下正常退出。 这正是我所需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM