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.TestCase类.
    class TestClassName(unittest.TestCase)
    类中的方法,必须用test开头,如test_001.
    运行方式:
        if __name__ == "__main__":
            unittest.main()
            
类方法:
    assertEqual(expect, result):断言实际与预期是否一致.
    setUp():测试类执行后最先调用的方法.
    tearDown():测试类执行后最后调用的方法.
    
注解(修饰器):
    @unittest.skip:这个测试方法会被跳过,不执行.
    @unittest.skipIf(boolean, "True跳过方法"):boolean为true则跳过此方法,boolean为false则执行此方法.
    @unittest.skipUnless(boolean, "False则跳过方法"):boolean为true则执行此方法,boolean为false则跳过此方法.
    

二、测试套(测试集合)
--------------------------注意事项------------------------------
unittest使用测试套时:不能与注解一起使用,天生的问题,无法解决.
    如果测试套与注解一起使用,那么就要用unittest方式执行.
    如果测试套不与注解一起使用时,要用Python方式运行.
---------------------------------------------------------------
定义测试套件:suite = unittest.TestSuite()
添加测试用例:suite.addTest(ClassName("test_method"))
    运行方式(要用Python的方式运行):
    if __name__ == "__main__":
        suite_runner = unittest.TextTestRunner()
        suite_runner.run(set_suite())

三、unittest生产测试报告
前提:把HTMLTestRunner.py文件拷贝到:Python安装目录\lib.
   # Python 文件读取操作
   #   1. 定义: open(file, mode='r' ....)
   #   2. 参数: file:将要生成的测试报告名称
   #                  如:在当前目录生成报告:'./report.html'
   #            mode:文件的打开方式
   #                  如: r: 只读方式打开
   #                      w: 可写方式打开
   #                      b: 二进制格式(流文件)
   #   3. 文件:打开 -> 编辑 -> 关闭
   #      python 中提供了自动关闭的功能:with
   #   4. with open('./report.html', 'wb') as f:
   #      1). 在当前目录新建一个 report.html 文件
   #      2). 该文件使用:可写+二进制 的方式打开/读写
   #      3). f:这个文件在代码中的别名
   
生成测试报告:
    with open('./report.html', 'wb') as f:
    # 导包:import HTMLTestRunner
    # 创建一个运行器
    # 实例化报表类
    # 参数stream:需要传入文件名
    # 参数title: 报告的标题
    # 参数description:报告的内容阐述
    # 第一个HTMLTestRunner是文件名,第二个HTMLTestRunner是类名.
    runner = HTMLTestRunner.HTMLTestRunner(stream=f, title='测试报表', description='这是我的测试报告')
    # 运行测试集合
    runner.run(set_suite())
    
四、参数化
1) 通过第三方工具包:parameterized
前提:
    File--->Settings--->Project:项目名--->Python Interpreter--->点击"+"
    --->输入"parameterized"--->点击"Install Package".
    
    1. 需求:判断两个数是否相等.
    # 文件(模块)名.类名
    # 将参数封装成一个list列表,list每一个元素可以是元组类型
    @parameterized.parameterized.expand([(5, 5), (0, 0), (-1, -1)])
    def test_01(self, x, y):
        self.assertEqual(x, y)
        
    2. 判断两数之和是否相等.
    @parameterized.parameterized.expand([(1, 1, 2), (2, 2, 4), (3, 4, 7)])
    def test_002(self, num1, num2, res):
        self.assertEqual(num1 + num2, res)

2) 参数化+测试套
    感觉没啥说的,和一般的测试套一样.
    
3) 通过csv文件进行参数化
导包: import csv

# 获取csv文件方法
def get_csv(filename="csvdata.csv"):
lst = []
with open(filename, "r") as f:
    reader = csv.reader(f)
    for line in reader:
        lst.append(line)
# 去除首行
return lst[1:]

# 测试执行类
class TestCsv(unittest.TestCase):
    @parameterized.parameterized.expand(get_csv())
    def test_001(self, add1, add2, expected):
        self.assertEqual(int(add1) + int(add2), int(expected))
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-08 11:51:54  更:2021-08-08 11:52:06 
 
开发: 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年11日历 -2024/11/17 20:23:35-

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