UnitTest框架 - 框架

'unittest'支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中,以及测试与报告框架的独立性.

unittest模块提供在一组测试中,这些类很容易支持这些特性.

为实现这一目标,unittest支持以下重要概念 :

  • 测试夹具 : 这表示执行一个或多个测试以及任何关联清理操作所需的准备工作.例如,这可能涉及创建临时或代理数据库,目录或启动服务器进程.

  • 测试用例 : 这是最小的测试单位.这将检查对特定输入集的特定响应. unittest提供了一个基类 TestCase ,可用于创建新的测试用例.

  • 测试套件 : 这是测试用例,测试套件或两者的集合.这用于聚合应该一起执行的测试.测试套件由TestSuite类实现.

  • 测试运行器 : 这是一个组件,它协调测试的执行并向用户提供结果.跑步者可以使用图形界面,文本界面或返回特殊值来指示执行测试的结果.

创建单元测试

以下步骤涉及编写简单的单元测试 :

步骤1 : 在程序中导入unittest模块.

第2步 : 定义要测试的功能.在以下示例中,add()函数将进行测试.

步骤3 : 通过继承unittest.TestCase创建一个测试用例.

步骤4 : 将测试定义为类中的方法.方法名称必须以'test'开头.

第5步 : 每个测试都调用TestCase类的断言函数.有许多类型的断言.下面的示例调用assertEquals()函数.

步骤6 :  assertEquals()函数将add()函数的结果与arg2参数进行比较,如果比较失败则抛出assertionError.

步骤7 : 最后,从unittest模块调用main()方法.

import unittest
def add(x,y):
   return x + y
   
class SimpleTest(unittest.TestCase):
   def testadd1(self):
      self.assertEquals(add(4,5),9)
      
if __name__ == '__main__':
   unittest.main()

第8步 : 从命令行运行上面的脚本.

 
 C:\Python27> python SimpleTest.py 
. 
 ---------------------------------------------- ------------------------ 
在0.000秒内完成1测试
 OK

第9步 : 以下三个可能是测试的可能结果 :

Sr.No消息&描述
1

确定

测试通过.控制台上显示"A".

2

失败

测试未通过,并引发AssertionError异常. 'F'显示在控制台上.

3

错误

测试引发AssertionError以外的异常.控制台上显示"E".

这些结果通过"."显示在控制台上. ,'F'和'E'分别.

命令行界面

可以从命令行使用unittest模块运行单个或多个测试.

python -m unittest test1
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

unittest支持以下命令行选项.有关所有命令行选项的列表,请使用以下命令 :

Python –m unittest -h


Sr.No选项&描述
1

-h, --help

显示此消息

2

v, --verbose

详细输出

3

-q, --quiet

最小输出

4

-f, --failfast

第一次失败时停止

5

-c, --catch

Catch控件-C并显示结果

6

-b, --buffer

缓冲区标准输出和测试运行期间的stderr