总结了一些单元测试框架的常见问题,欢迎评论区补充,如需教学辅导可私信作者
UnitTest
篇继承unittest.TestCase
的类即为测试类,成员方法需要以test
开头,如需修改命名规则,需要定义ini
文件
UnitTest
的测试夹具(前后置方法)有哪些setUpClass
、tearDownClass
:类级别的前后置增强,需要使用装饰器@classmethod
setUp
、tearDown
:方法级别的前后置增强setUpModule
、tearDownModule
:模块级别的前后置增强使用装饰器@unittest.ship(msg)
TestSuite
),如何使用?多个测试用例的集合称为测试套件
使用方法
创建测试套件:suite=unittest.TestSuite()
添加测试用例:suite.addTest(ClassName('MethodName'))
批量添加:suite.addTest(unittest.makeSuite(ClassName))
,会将指定类中以test
开头的方法添加到测试套件中
运行测试套件,需要依赖于TestRunner
对象,然后调用run
方法
runner = unittest.TextTestRunner()
runner.run(suite)
测试执行器是用来执行测试用例和测试套件,并返回测试用例的执行结果,在unittest
单元测试框架中,通过TextTestRunner
的run
方法来执行测试用例或套件,还可以用图形或者文本接口,把返回的测试结果更形象的展现出来,如:HTMLTestRunner
UnitTest
可以结合DDT
进行数据驱动
ddt
常用装饰器
@ddt.ddt
:解析测试类中使用了ddt
装饰器的方法@ddt.data
:为方法提供数据驱动@ddt.unpack
:对ddt
参数进行解包@ddt.unpack
@ddt.data([1, 1], [2, 2], [3, 3])
不解包则认为参数为单个参数,如果进行解包会按照集合中的元素个数从左往右赋值给每一个形参
可以使用HTMLReport
、BeautifulReport
、Allure
等,到github中查找项目,查看具体操作方式,此处不进行细讲