1、 unittest是python自带的单元测试框架,用来管理自动化测试用例
(1)框架解析
1、TestCase:测试用例、测试方法,以test_开头,否则不会执行
2、TestFixture测试固件:运行前后数据的处理,setUp()和tearDown()方法
3、TestSuite测试套件:通过addTest()的手动方法,将测试用例放在测试套件中,批量执行测试方法;也可以使用TestLoader自动添加测试用例到测试套件中
4、TextTestRunner:执行测试方法,把测试套件跑起来
5、TextTestResult:保存测试结果
6、TestReport:基于html的测试报告
(2)流程
有了被测试方法之后,写TestCase,以及TestFixture中的方法进行前后数据的处理,使用手动方法或者TestLoader将测试用例加载到测试套件中,使用TextTestRunner中的run()方法执行测试套件,将运行的结果放在TextTestResult中。
(3)TestFixture中的方法对比:
setUpClass():所有测试用例执行前执行一次
tearDoenClass():所有测试用例执行之后执行一次
上面这两个方法需要使用**@classmethod注解**
setUp():每个测试用例执行之前执行一次
tearDown():每个测试用例执行之后执行一次
assertEquals(args1,args2):断言,比较实际和预期结果是否一致
@unittest.skip(“skipping”):忽略测试方法的执行
(4)代码演示
1、 首先创建一个文件test_fun.py来放被测试的方法
"""
准备几个要测试的方法
"""
def add(a,b):
return a+b
def sub(a,b):
return a-b
def multi(a,b):
return a*b
def div(a,b):
return a/b
def upper_str(string):
return string.upper()
def lower_str(string):
return string.lower()
def square(x):
return x**2
2、创建测试类,以Test开头
#引入unittest框架
import unittest
#引入被测试方法的文件
from test_function.test_fun import *
#定义测试类,并继承unittest中的TestCase
class