美文网首页
10.信号处理

10.信号处理

作者: MirrorAi | 来源:发表于2018-11-07 17:18 被阅读0次

新增于3.2。

unittest的-c/--catch命令行选项以及unittest.main()catchbreak参数在测试运行期间提供了更友好的control-C处理。启用catch中断行为后,control-C将允许当前正在运行的测试完成,然后测试运行将结束并报告所有结果。第二个control-c将以通常的方式引发KeyboardInterrupt

control-c处理信号处理程序试图与安装的signal.SIGINT处理程序的代码或测试保持兼容。如果调用unittest处理程序但不是已安装的signal.SIGINT处理程序,换句话说它已被被测系统替换并委托给它,则它调用默认处理程序。这通常是代码替换已安装的处理程序并委托给它的预期行为。对于需要禁用unittest的control-c处理的单个测试,可以使用removeHandler()装饰器。

框架作者有一些实用程序函数可以在测试框架中启用control-c处理功能。


unittest.installHandler()
安装control-c处理程序。当收到signal.SIGINT时(通常是响应用户按下control-c),所有注册的结果都会调用stop()


unittest.registerResult(result)
为control-c处理注册一个TestResult对象。注册结果会存储对它的弱作用,因此不会阻止结果被垃圾回收。
如果未启用control-c处理,则注册TestResult对象没有副作用,因此测试框架可以无条件地注册它们创建的所有结果,而与是否启用处理无关。


unittest.removeResult(result)
删除注册结果。删除结果后,将不再在该结果对象上调用stop()来响应control-c。


unittest.removeHandler(function=None)
当不带参数调用时,如果已安装control-c处理程序,则此函数将删除它。此函数还可以用作测试装饰器,以便在执行测试时删除处理程序:

@unittest.removeHandler
def test_signal_handling(self):
  ...

相关文章

  • 10.信号处理

    新增于3.2。 unittest的-c/--catch命令行选项以及unittest.main()的catchbr...

  • 信号处理

    信号处理

  • 信号与信号处理

    两本书 近期连续阅读两本有关如何处理市场“信号”的书,一本是信号-社会契约与地缘政治如何影响世界经济,一本是宽客-...

  • 信号二

    信号的几种状态 抵达:表示一个信号到达,要处理的信号。阻塞:表示当信号到达时使信号阻塞,当解除阻塞时再处理信号,阻...

  • 学习笔记:信号处理

    信号处理是对各种类型的电信号,按照预期目的和要求进行加工过程的统称。对模拟信号的处理称为模拟信号处理,对数字信号的...

  • 信号控制 & expect

    一,信号说明 二,信号处理 捕捉信号并处理 三,hup信号 ---->如何让一个进程脱离当前窗口运行 四, exp...

  • 信号处理的本质思考

    什么是信号处理? 信号处理任务就是从接收端感知的信号中还原出发送端发送的信号,滤掉/抑制不需要的信号(噪声和干扰)...

  • 1-4节linux系统编程——进程通信信号和创建线程

    通信信号 信号:一种异步通信机制系统支持的信号都有默认的处理方式常用的信号及其处理:SIGINT | SIGQUI...

  • 信号处理(三)

    本篇介绍 本篇接续信号处理的介绍。 图像中的信号处理 信号处理在采样图像中使用的最为广泛。比如图像的模糊就是将图像...

  • linux信号透彻分析理解与各种实例讲解

    本文将从以下几个方面来阐述信号: (1)信号的基本知识 (2)信号生命周期与处理过程分析 (3) 基本的信号处理函...

网友评论

      本文标题:10.信号处理

      本文链接:https://www.haomeiwen.com/subject/tzpvxqtx.html