Unittest的使用
一、简介
unittest是一个python版本的单元测试框架,可以用于python的单元测试
特点:
自动化测试用例的组织和管理
提供丰富的比较方法,完成结果的检查
提供执行过程数据,如:执行时间、执行结果等
- 语法
Test Case:一个TestCase实例就是一个测试用例,即一个test开头的测试函数。
Test Fixture:用于测试前的环境初始化和测试后的环境清理,通过setUp函数和tearDown函数完成。
Test Runner:unittest单元测试框架提供了TextTestRunner类来运行多个Test Suite或test case。
Test Suite:一个功能测试需要很多Test Case,可以多个测试用例统一进行执行,把多个用例加到一个Test Suite中。
- 测试模板
Import unittest class Test(unittest.TestCase): def testjf002(self): print(“测试用例二”) @classmethod #teraDownClass执行一次 如果使用teraDown一个测试用例执行一次 #执行测试 If ‘__name__’ ==’__main__’: Unittest.main()
|
- 断言
断言方法是 unittest 框架提供的一组方法,可以通过这些方法完成期望结果和实际结果的对比。常用方法有:
assert+空格+要判断语句+逗号+“报错语句” python提供
assertEqual(a,b,msg=None) 检查a==b,不等则报错
assertNotEqual(a,b,msg=None) 检查a!=b,相等则报错
assertIn(a,b,msg=None) 检查a in b,不在报错
assertNotIn(a,b,msg=None) 检查a not in b,在报错
assertTrue(a,msg=None) 检查表达式a成立,不成立报错
assertFalse(a,msg=None) 检查表达式a不成立,成立报错assertIsInstance(obj,cls,msg=None) 检查obj是cls一个实例,是则pass,不是就报错
assertNotIsInstance(obj,cls,msg=None)检查obj不是cls一个实例,不是则pass
- 执行的方法
#执行测试用例方法一
|
- 生成HTML测试报告
自动化测试执行完成以后,需要输出一个完整的测试报告,供测试人员查看测试执行情况,确认自动化测试执行发现的缺陷情况。
HTMLTestRunner是Python标准库的unittest单元测试框架的一个扩展,可以生成一个可读性很强的HTML格式的测试报告。
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载HTMLTestRunner.py文件,然后将其复制到 D:\Python\Python37\Lib 下(以实际安装目录为准)
import HTMLTestRunner testsuite = unittest.defaultTestLoader.discover(r'./\test001',pattern='unittest断言.py') #使用HTMLTestRunner方法执行测试套件,打印测试报告
|