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

unittest测试流程
- 写好
TestCase:一个class继承unittest.TestCase,就是一个测试用例,其中有多个以test开头的方法,每一个方法都在load的时候会生成一个TestCase实例。如果一个class中有四个test开头的方法,最后load到suite中时则有四个测试用例。 - 由
TestLoader加载TestCase到TestSuite。 - 由
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开头。
一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
调用unittest.main()启动测试。
如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西。