unittest框架中各元素的学习
1、TestCase类
unittest.TestCase()类的实例表示单元测试宇宙中的逻辑测试单元。此类旨在用做基类,其子类将实现特定的测试用例。此类实现测试运行程序所需的接口,以允许它驱动测试,以及测试代码可用于检查和报告各种故障的方法
即每个测试函数必须继承TestCase类,测试函数并以test_开头命名
语法:
1.导入unitest包
2.定义测试类:新建测试类必须继承unitest.TestCase
3.定义测试方法:测试方法名称命名必须以test开头
4.调用unitest.main()函数执行测试用例
二、TestSuite
说明:测试套件 多条测试用例集合在一起,就是一个testSuite
使用:
1、先实例化:suite = unnitest.TestSuit()
suite:为TestSuite实例化的名称
2、添加实例:suite.addTest(className("methodName"))
className 为类名;methodName为方法名
3、添加扩展:
suite.addTest(unnitest.makeSuite(className))
搜索指定className内的test开头方法并添加到测试套件中
以上步骤只能将测试用例的方法添加到测试套件中,并不能执行,如果要执行则需要TextTestrunner()方法来执行
三、TextTestRunner
作用,执行suite中的测试用例
使用方法:
--先实例化TextTestRunner()实例对象
--调用对象的run方法
---只要把suite作为参数传递到run方法中
四、TestLoader
可以从指定目录查找指定的py文件中的所有测试用例,自动加载到TestSuite中
Testsuite和TestLoader的使用区别:
当只要执行py文件中多个测试用例中的几个,而不是全部执行时,那么使用testsuite的addtest方法加载指定的测试用例
当执行所有的py文件中的所有的测试用例时,那么使用TestLoader
小结:
所有的testcase最终都需要使用texttestrunner来执行
TextTestRunner执行的是TestSuite
一个TestSuite中可以有多个TestCase