IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> unittest测试框架基础用法 -> 正文阅读

[开发测试]unittest测试框架基础用法

"""
UnitTest是python自带的单元测试框架
TestCase测试用例
TestSuite测试套件,可以把多个TestCase集成到一个TestSuite中
TestRunner执行测试用例
TestLoader自动从代码中加载多个测试用例TestCase
Fixure是UnitTest的特性

"""

# ************************************************************************
# testCase
# 案例:定义一个实现加法操作函数,并测试
# 定义函数
"""
步骤:
1.导入unittest模块
2.实现一个类,必须继承unittest.TestCase类
3.类中的每个方法为一个测试用例必须以test开头
4.在类的外面,函数外面运行

"""
# 新建py文件testcase_01
import unittest
def my_sum(a,b):
    return a + b
# 定义类
class my_test(unittest.TestCase):
    # 编写第一个测试用例,测试用例必须以test开头
    def test_01(self):
        print(my_sum(4,8))
    # 编写第二个测试用例
    def test_02(self):
        print(my_sum(24,523))
# unittest会自动执行代码

# ************************************************************************
# TestSuite 把多个测试用例整合成一个测试套件
"""
使用方法
1.实例化unittest.testsuite方法  如suite1 = unittest.TestSuite()
2.调用addTest()方法添加测试用例 suite1.addTest(classname(“方法名”))
"""
import unittest # 导入unittest
import testcase_01 # 导入测试用例py文件,导入的py文件名格式与变量一致
# 实例化unittest.TestSuite
suite = unittest.TestSuite()
# 添加testcase_01中的测试用例
suite.addTest(testcase_01.my_test('test_01'))
suite.addTest(testcase_01.my_test('test_02'))
# 截止到现在执行后无结果,上面仅仅将测试用例添加到测试套件中,不能执行测试用例
# suite.addTest(unittest.makeSuite(类名))一次性添加类里面的所有测试用例到套件中
# 效果同上
suite.addTest(unittest.makeSuite(testcase_01.my_test))

# ************************************************************************
# TextTestRunner执行测试套件中的测试用例
"""
使用方法
1.实例化TextTestRunner方法  如runner = unittest.TextTestRunner()
2.调用run()方法,并将要执行的套件设为参数即可
"""
runner = unittest.TextTestRunner() # 实例化TextTestRunner对象
runner.run(suite) #调用对象的run方法执行suite套件中的测试用例

# ************************************************************************
# TestLoader通过discover()方法自动搜索指定开头的py文件,并可以将查到的测试用例组装到测试套件中
"""
使用方法
1.suite1 = unittest.TestLoader().discover(test_dir,pattern='test*.py')
2.调用run()方法,并将要执行的套件设为参数即可
"""
# 提前新建一个名字为my开头的测试用例文件
# 用discover方法按参数条件查询文件,并将查询到的问题件放在suite中
suite1 = unittest.TestLoader().discover("./","my*.py") # "./"意思为在当前目录中寻找文件,"my*.py"代表以my开头的py文件,*为通配符
# 执行调用
run = unittest.TextTestRunner()
run.run(suite1)

# ************************************************************************
# Fixture在测试用例执行之前和之后自动调用指定的函数
# 可以控制每个方法、类、模块的执行前后的调用
"""
方法级控制
初始化-前置处理: def setUp(self)
销毁-后置处理:def tearDown(self)
每个方法执行的时候前后置方法都会被执行一次
"""
def my_sum(a,b):
    return a + b
# 定义类
class my_test(unittest.TestCase):
    # 初始化处理setup
    def setUp(self):
        print('setup被执行了')
    # 销毁后置处理tearDown
    def tearDown(self):
        print('tearDown被执行了')
    def test_01(self):
        print(my_sum(4,8))
    # 编写第二个测试用例
    def test_02(self):
        print(my_sum(24,523))

"""
类级控制,为类方法,前面必须加上@classmethod
初始化-前置处理: @classmethod def setUpClass(cls)
销毁-后置处理:@classmethod def tearDownClass(cls)
类执行的时候前后置方法会各执行一次
"""
def my_sum(a,b):
    return a + b
# 定义类
class my_test(unittest.TestCase):
    @classmethod
    # 类控制初始化调用函数,类开始执行时调用
    def setUpClass(cls):
        print('setupclass被执行了')
    @classmethod
    # 类控制销毁调用函数,类执行结束时调用
    def tearDownClass(cls):
        print('tearDownclass被执行了')
    # 初始化处理setup
    def setUp(self):
        print('setup被执行了')
    # 销毁后置处理tearDown
    def tearDown(self):
        print('tearDown被执行了')
    def test_01(self):
        print(my_sum(4,8))
    # 编写第二个测试用例
    def test_02(self):
        print(my_sum(24,523))

"""
模块级控制
初始化-前置处理: def setUpModule()
销毁-后置处理:def tearDownModule()
一个py文件执行一次,写在import后
"""

def setUpModule():
    print('setupModule被执行了')
def tearDownModule():
    print('tearDownModule被执行了')

def my_sum(a,b):
    return a + b
# 定义类
class my_test(unittest.TestCase):
    @classmethod
    # 类控制初始化调用函数,类开始执行时调用
    def setUpClass(cls):
        print('setupclass被执行了')
    @classmethod
    # 类控制销毁调用函数,类执行结束时调用
    def tearDownClass(cls):
        print('tearDownclass被执行了')
    # 初始化处理setup
    def setUp(self):
        print('setup被执行了')
    # 销毁后置处理tearDown
    def tearDown(self):
        print('tearDown被执行了')
    def test_01(self):
        print(my_sum(4,8))
    # 编写第二个测试用例
    def test_02(self):
        print(my_sum(24,523))

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 20:02:21  更:2021-07-04 20:02:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 18:11:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码