ununittest 笔录

本贴最后更新于 980 天前,其中的信息可能已经事过景迁

ununittest 简单介绍及测试流程

""""
unittest
一、unittest核心组件(4个)
1.TestCase:测试用例类,用来定义用例函数的
2.TestSuite:测试套件,用来收集测试用例
3.TestRunner: 测试用例运行类,用来执行测试用例的,以测试套件维护去执行
4.TestFixture:测试脚手架,前置条件,后置清理

二、测试流程
1.先定义测试用例类,在测试用例类中写测试方法
2.收集你要执行的测试用例类或者文件里面的方法,放到测试套件
3.将收集好的测试套件,放到测试用例运行器中去执行,并收集测试结果
4.做好前置条件和后置处理

三、如何写测试用例(TestCase)

  1. 导入模块 import unittest
  2. 定义一个测试用例类:必须Test开头
  3. 定义测试方法:测试方法也必须是test开头
  4. 框架执行入口:unittest.main() 自动收集当前py文件中的用例执行

四、测试用例包含哪些东西

  1. 前置条件(如果没有可以不写):SQL语句执行、数据库连接创建,工具类的实例化
  2. 测试步骤(业务逻辑):数据替换、数据驱动
  3. 测试结果断言:响应结果的断言,数据库数据断言
  4. 后置处理(如果没有可以不写):数据清理、数据库连接的关闭

五、前置后置

  1. 类级别
    前置:整个测试用例执行前执行一次(当前测试用例类)
    后置:整个测试用执行后执行一次(当前测试用例类)
  2. 函数级别
    前置:每个测试用例执行前执行一次
    后置:每个测试用例执行后执行一次

六、用例的执行

  1. 用例执行按照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)
回帖
请输入回帖内容 ...