Python-unittest单元测试框架

什么是unittest

unittest是 Python 自带的单元测试框架,可以帮我们完成接口自动化测试、UI 自动化测试。主要用来组织和执行测试单条测试用例组织在一起执行,同时能够满足如果一条测试用例执行失败,后面的测试执行,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。


unittest核心要素

unittest核心要素


unittest测试流程

  1. 写好TestCase:一个class继承unittest.TestCase,就是一个测试用例,其中有多个以test开头的方法,每一个方法都在load的时候会生成一个TestCase实例。如果一个class中有四个test开头的方法,最后loadsuite中时则有四个测试用例。
  2. TestLoader加载TestCaseTestSuite
  3. TextTestRunner来运行TestSuite,运行的结果保存在TextTestResult中。

说明

通过命令行或者unittest.main()执行时,main()会调用TextTestRunner中的run()来执行,或者可以直接通过TextTestRunner来执行用例。
Runner执行时,默认将结果输出到控制台,我们可以设置其输出到文件,在文件中查看结果,也可以通过HTMLTestRunner将结果输出到HTML


unittest框架使用说明

1
import unittest # 导入测试框架

定义一个继承自unittest.TestCase的测试用例类。

定义setUp()方法、tearDown()方法、setUpClass()方法、tearDownClass()方法,其中setUp()方法指在每个测试用例方法执行前,都会执行一次;tearDown()方法指在每次测试用例方法执行结束后,都会执行一次;setUpClass()方法指在一个测试用例集执行前只执行一次;tearDownClass()方法指在一个测试用例集执行后只执行一次。

定义测试用例,名字以test开头。
一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要调用assertEqualassertRaises等断言方法判断程序执行结果和预期值是否相符。

调用unittest.main()启动测试。
如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西。