unittest----单元测试框架
Python单元测试框架,有时称为"PyUnit",它是JUnit的Python语言版本,由Kent Beck 和 Erich Gamma创建。
unittest支持测试自动化,为多个测试用例共享设置和关闭代码,将多个测试用例聚合为一个集合,测试独立于报告框架。
test fixture
代表执行一个或多个测试需要的准备工作,或者任何的清理工作。可能包含创建临时数据库,目录或者启动服务器进程
test case
最小的测试单元,它检查对于特定输入的反应。unittest提供基类,用于创建一个新的测试用例。
test suite
测试用例、测试suites的集合,用于聚合多个测试用例一起执行。
test runner
执行测试交提供输出。
基础实例:
unittest模块提供丰富工具集用于构造和运行测试。
下面是一个random模块三个函数的测试脚本:
测试用例是unittest.TestCase子类。random的三个方法由三个以test开头的方法单独测试。此种命名惯例告诉测试执行者哪些方法
代表tests。
各个测试的关键是调用assertEqual()来检查期望的结果,assertTrue()来确认条件,assertRaises()检查预期的异常是否发生。
这些方法取代assert语句以便test runner收集所有测试结果并产生报告。
如果setup()方法定义,则它将在各个测试之前运行。与此相似,tearDown()会在各个测试之后运行。此例中,setup()创建了一个序列。
最后一个语句块展示了一种简单的方式来运行tests。unittest.main()提供一个命令行接口来运行测试脚本。当从命令行运行时,上面的脚本
输出如下:
除了unittest.main(),有其它的方法来运行tests,控制级别更加优秀,而且不需要从命令行运行。例如:
最后两行改成如下语句:
输出:
上面的实例能够满足多数测试需求。
25.3.2命令行接口
unittest能够从命令行来运行测试模块、类或者方法:
测试模块能够通过文件路径指定:
python -m unittest tests/test_something.py
Python单元测试框架,有时称为"PyUnit",它是JUnit的Python语言版本,由Kent Beck 和 Erich Gamma创建。
unittest支持测试自动化,为多个测试用例共享设置和关闭代码,将多个测试用例聚合为一个集合,测试独立于报告框架。
test fixture
代表执行一个或多个测试需要的准备工作,或者任何的清理工作。可能包含创建临时数据库,目录或者启动服务器进程
test case
最小的测试单元,它检查对于特定输入的反应。unittest提供基类,用于创建一个新的测试用例。
test suite
测试用例、测试suites的集合,用于聚合多个测试用例一起执行。
test runner
执行测试交提供输出。
基础实例:
unittest模块提供丰富工具集用于构造和运行测试。
下面是一个random模块三个函数的测试脚本:
测试用例是unittest.TestCase子类。random的三个方法由三个以test开头的方法单独测试。此种命名惯例告诉测试执行者哪些方法
代表tests。
各个测试的关键是调用assertEqual()来检查期望的结果,assertTrue()来确认条件,assertRaises()检查预期的异常是否发生。
这些方法取代assert语句以便test runner收集所有测试结果并产生报告。
如果setup()方法定义,则它将在各个测试之前运行。与此相似,tearDown()会在各个测试之后运行。此例中,setup()创建了一个序列。
最后一个语句块展示了一种简单的方式来运行tests。unittest.main()提供一个命令行接口来运行测试脚本。当从命令行运行时,上面的脚本
输出如下:
除了unittest.main(),有其它的方法来运行tests,控制级别更加优秀,而且不需要从命令行运行。例如:
最后两行改成如下语句:
输出:
上面的实例能够满足多数测试需求。
25.3.2命令行接口
unittest能够从命令行来运行测试模块、类或者方法:
测试模块能够通过文件路径指定:
python -m unittest tests/test_something.py
参考:
http://docs.python.org/py3k/library/unittest.html?highlight=unittest#unittesthttps://www.ibm.com/developerworks/cn/linux/l-pyunit/
参数 :
--verbosity 意思是说输出的信息详细程度