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()
启动测试。
如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西。