- 单元测试框架教程
- 单元测试框架 - 首页
- 单元测试框架 - 概述
- 单元测试框架 - 框架
- 单元测试框架 - API
- 单元测试框架 - 断言
- 单元测试框架 - 测试发现
- 单元测试框架 - 跳过测试
- 单元测试框架 - 异常测试
- 单元测试框架 - 时间测试
- 单元测试框架 - Unittest2
- 单元测试框架 - 信号处理
- 单元测试框架 - Doctest
- 单元测试框架 - Doctest API
- 单元测试框架 - Py.test 模块
- Nose 测试 - 框架
- Nose 测试 - 工具
- 单元测试框架资源
- 单元测试框架 - 快速指南
- 单元测试框架 - 资源
- 单元测试框架 - 讨论
单元测试框架 - 信号处理
unittest 的 -c/--catch 命令行选项以及 **catchbreak** 参数提供了在测试运行期间更有效的 Control-C 处理方式。启用 catch break 行为后,Control-C 将允许当前正在运行的测试完成,然后测试运行将结束并报告到目前为止的所有结果。第二次 Control-C 将以通常的方式引发 KeyboardInterrupt。
如果调用了 unittest 处理程序但未安装 signal.SIGINT 处理程序,则它将调用默认处理程序。对于替换已安装处理程序并委派给它的代码,这通常是预期的行为。对于需要禁用 unittest Control-C 处理的单个测试,可以使用 removeHandler() 装饰器。
以下实用函数在测试框架中启用 Control-C 处理功能:
unittest.installHandler()
安装 Control-C 处理程序。当收到 **signal.SIGINT** 时,所有已注册的结果都会调用 TestResult.stop()。
unittest.registerResult(result)
注册一个 **TestResult** 对象以进行 Control-C 处理。注册结果会存储对其的弱引用,因此它不会阻止结果被垃圾回收。
unittest.removeResult(result)
删除已注册的结果。删除结果后,将不再对该结果对象调用 TestResult.stop() 以响应 Control-C。
unittest.removeHandler(function = None)
在不带参数调用时,此函数将删除已安装的 Control-C 处理程序。此函数也可以用作测试装饰器,以便在执行测试时临时删除处理程序。
GUI 测试运行器
安装 unittest 模块以交互方式发现和运行测试。此实用程序(一个 Python 脚本“inittestgui.py”)使用 Tkinter 模块,这是一个 Python 的 TK 图形工具包端口。它提供了一个易于使用的 GUI 来发现和运行测试。
Python unittestgui.py
单击“发现测试”按钮。将出现一个小的对话框,您可以在其中选择要从中运行测试的目录和模块。
最后,单击“开始”按钮。将从选定的路径和模块名称发现测试,结果窗格将显示结果。
要查看单个测试的详细信息,请选择结果框中的测试并单击它:
如果在 Python 安装中找不到此实用程序,您可以从项目页面获取它 http://pyunit.sourceforge.net/。
类似地,基于 wxpython 工具包的实用程序也在那里提供。