unittest初级了解

unittest 框架的介绍

框架

framework
为了解决⼀类事情的功能集合

Unittest 框架简述

  • 是 Python ⾃带的单元测试框架
  • ⾃带的, 可以直接使⽤, 不需要单外安装
  • 测试⼈员 ⽤来做⾃动化测试, 作为⾃动化测试的执⾏框架,即管理和执⾏⽤例的

使⽤的原因

能够组织多个⽤例去执⾏
提供丰富的断⾔⽅法
能够⽣成测试报告

核⼼要素(组成)

1.TestCase 测试⽤例, 这个测试⽤例是 unittest 的组成
部分,作⽤是 ⽤来书写真正的⽤例代码(脚本)
2.Testsuite 测试套件, 作⽤是⽤来组装(打包)
3. TestRunner 测试执⾏(测试运⾏), 作⽤ 是⽤例执⾏
TestSuite(测试套件)的
4.TestLoader 测试加载, 是对 TestSuite(测试套件) 功
能的补充, 作⽤是⽤来组装(打包) TestCase(测试⽤例)
5. Fixture 测试夹具, 是⼀种代码结构, 书写前置⽅法
(执⾏⽤例之前的⽅法)代码和后置⽅法(执⾏⽤例之后的⽅
法) 代码 ,即⽤例执⾏顺序 前置 ---> ⽤例 ---> 后置

Unittest 框架使用

TestSuite(测试套件)

将多条⽤例脚本集合在⼀起,就是套件, 即⽤来组装⽤例的

1. 导包 unittest
2. 实例化套件对象 unittest.TestSuite()
3. 添加⽤例⽅法

TestRunner(测试执⾏)

⽤来执⾏套件对象

1. 导包 unittest
2. 实例化 执⾏对象 unittest.TextTestRunner()
3. 执⾏对象执⾏ 套件对象 执⾏对象.run(套件对象)

整体步骤

 - 导包 unittest
 - 实例化套件对象 unittest.TestSuite()
 - 添加⽤例⽅法
3.1 套件对象.addTest(测试类名('测试⽅法名'))
 - 实例化 执⾏对象 unittest.TextTestRunner()
 - 执⾏对象执⾏ 套件对象 执⾏对象.run(套件对象)

代码案例

  • ⽤例代码⽂件
# 1. 导包 unittest
import unittest
# 2. 定义测试类, 只要继承 unittest.TestCase 类, 就是
测试类
class TestDemo1(unittest.TestCase):
 # 3. 书写测试⽅法, ⽅法中的代码就是真正⽤例代码,
⽅法名必须以 test 开头
 def test_method1(self):
 print('测试⽅法1-1')
 def test_method2(self):
 print('测试⽅法1-2')
  • 套件和执⾏
# 1. 导包 unittest
import unittest
from hm_02_testcase1 import TestDemo1
from hm_02_testcase2 import TestDemo2
# 2. 实例化套件对象 unittest.TestSuite()
suite = unittest.TestSuite()
# 3. 添加⽤例⽅法
# 3.1 套件对象.addTest(测试类名('测试⽅法名')) # 建
议复制
suite.addTest(TestDemo1('test_method1'))
suite.addTest(TestDemo1('test_method2'))
suite.addTest(TestDemo2('test_method1'))
suite.addTest(TestDemo2('test_method2'))
# 4. 实例化 执⾏对象 unittest.TextTestRunner()
runner = unittest.TextTestRunner()
# 5. 执⾏对象执⾏ 套件对象 执⾏对象.run(套件对象)
runner.run(suite)

# 套件对象.addTest(unittest.makeSuite(测试类名)) # 在
不同的 Python 版本中,可能没有提示
suite.addTest(unittest.makeSuite(TestDemo1))
suite.addTest(unittest.makeSuite(TestDemo2))

在这里插入图片描述

在这里插入图片描述

TestLoader 测试加载

import unittest

# 实例化加载对象并加载用例,得到套件对象
# suite = unittest.TestLoader().discover('用例所在的目录', '用例代码文件名*.py')
suite = unittest.TestLoader().discover('../../../../03-代码', 'hm_02*.py')
# 实例化执行对象并执行
# runner = unittest.TextTestRunner()
# runner.run(suite)

unittest.TextTestRunner().run(suite)
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值