ununittest 简单介绍及测试流程
""""
unittest
一、unittest核心组件(4个)
1.TestCase:测试用例类,用来定义用例函数的
2.TestSuite:测试套件,用来收集测试用例
3.TestRunner: 测试用例运行类,用来执行测试用例的,以测试套件维护去执行
4.TestFixture:测试脚手架,前置条件,后置清理
二、测试流程
1.先定义测试用例类,在测试用例类中写测试方法
2.收集你要执行的测试用例类或者文件里面的方法,放到测试套件
3.将收集好的测试套件,放到测试用例运行器中去执行,并收集测试结果
4.做好前置条件和后置处理
三、如何写测试用例(TestCase)
- 导入模块 import unittest
- 定义一个测试用例类:必须Test开头
- 定义测试方法:测试方法也必须是test开头
- 框架执行入口:unittest.main() 自动收集当前py文件中的用例执行
四、测试用例包含哪些东西
- 前置条件(如果没有可以不写):SQL语句执行、数据库连接创建,工具类的实例化
- 测试步骤(业务逻辑):数据替换、数据驱动
- 测试结果断言:响应结果的断言,数据库数据断言
- 后置处理(如果没有可以不写):数据清理、数据库连接的关闭
五、前置后置
- 类级别
前置:整个测试用例执行前执行一次(当前测试用例类)
后置:整个测试用执行后执行一次(当前测试用例类) - 函数级别
前置:每个测试用例执行前执行一次
后置:每个测试用例执行后执行一次
六、用例的执行
- 用例执行按照asccii码顺序执行(0-9,A-Z,a-z)
#打印对应字符的ascii码
七、用例断言(继承了TestCase类的断言方法
self.assertEqual(1,1) 断言是否相等
1.unittest以程序运行过程中抛出异常来判断用例是否执行成功
2.如果断言失败,程序会抛出异常,框架就会吧这个用例标记为失败
3.只要你程序中执行出现了异常,框架也会去捕获异常并抛出异常
八、异常捕获与异常的抛出
1.try .....except 捕获的异常一定要抛出来给框架,否转框架就会认为用例执行成功
2.手动抛异常:raise
框架执行入口
九、用例收集
1.测试用例维度
添加1个测试用例
sutie.addTest(TestDemo('test_02'))
添加多个测试用例
test=[TestDemo('test_02'),TestDemo('test_03')]
sutie.addTests(test)
添加某个测试类(类里面所有的用例都会被执行)
sutie.addTest(unittest.makeSuite(TestDemo))
"""
import unittest
class TestDemo(unittest.TestCase):
#函数级别的前置
@classmethod
def setUp(self) -> None:
print('用例前置')
#函数级别的后置
@classmethod
def tearDown(self) -> None:
print('用例后置')
#类级别的前置
@classmethod
def setUpClass(cls) -> None:
print('类级别前置')
@classmethod
def tearDownClass(cls) -> None:
print('类级别后置')
def test_01(self):
print('测试用例01')
self.assertEqual(1,1)
def test_02(self):
print('测试用例02')
self.assertEqual(1,1)
if name == 'main':
unittest.main()
import unittest
from demo02 import TestDemo
#创建出测试套件
sutie=unittest.TestSuite()
#添加某个用例
sutie.addTest(TestDemo('test_02'))
#添加多个测试
test=[TestDemo('test_01'),TestDemo('test_02')]
sutie.addTests(test)
#添加某个测试类
sutie.addTest(unittest.makeSuite(TestDemo))
#创建执行器
rinner= unittest.TextTestRunner()
rinner.run(sutie)
欢迎来到testingpai.com!
注册 关于