Python基础学习016__UnitTest
# UnitTest是python自带的一个单元测试框架,不需要额外安装 # 也是自动化脚本执行框架,使用UnitTest来管理,运行多个框架 # 为什么使用:能够组织多个用例去执行.提供了丰富的断言方法,能够生成测试报告 # 核心要素: # Testcase:测试用例:这个测试用例是UnitTest的组成部分,不是手工和自动化中所说的用例(Test Case) # 每一个TestCase都是一个代码文件,这这个文件中书写真正的代码 # TestSuite:测试套件,用来管理,组装(打包)多个TestCase # TestRunner:测试执行:用来执行TestSuite # TestLoader:测试加载:对TestSuite功能的补充 # Fixture:测试夹具:书写在TestCase中的,是一种代码结构,在每个方法执行前后都会执行的内容. # 可以将用例的前置后置条件放在这里
# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print('方法1')def test_method2(self):print('方法2')
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法class TestcaseDemo2(unittest.TestCase):# 3.书写要求:测试方法必须以test_开头def test_method2_1(self):print('方法2-1')def test_method2_2(self):print('方法2-2')# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的'运行','debug'按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可
# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1_1(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print('方法1')def test_method2(self):print('方法2')
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的'运行','debug'按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可
# 学习UnitTest框架的TestCase书写
# 1.导包
import unittest# 2.自定义类继承UnitTest的TestCase类
class TestcaseDemo1_2(unittest.TestCase): # 在定义类时继承UnitTest的TestCase类# 3.书写要求:测试方法必须以test_开头def test_method1(self):print('方法1')def test_method2(self):print('方法2')
# 4.执行用例:
# 将光标放在类名后面运行,执行类中的所欲方法.
# 将光标放在方法名的后边运行,只执行当前的方法# 运行时找不到run unittest for的选项:之前这个文件在书写用例前以.py代码的形式运行过
# 解决方案1:新建一个文件,将代码复制进去即可
# 解决方法2:在pycharm中点击最上方一行(绿色的'运行','debug'按钮那一行,有的在三个点那里面,有的是文件名的一个下拉框,)
# 中的edit选项(有的叫做edit,有的叫做edit configurations...),
# 将运行异常的这个代码从Python这个分类里移除即可
"""
学习TestSuite和TestRunner
"""
# 1.导包
import unittestfrom TestCase.hpp_TestCase import TestcaseDemo1, TestcaseDemo2
from TestCase.hpp_TestCase1 import TestcaseDemo1_1
from TestCase.hpp_TestCase2 import TestcaseDemo1_2# 2.实例化套件对象
suite = unittest.TestSuite()
# 3.使用套件对象添加用例方法
# 3.1suite.addTest(测试类名('方法名'),名称直接去复制,不要手写
suite.addTest(TestcaseDemo1('test_method1'))
suite.addTest(TestcaseDemo1_1('test_method1'))
suite.addTest(TestcaseDemo2('test_method2_1'))
# 3.2添加一个测试类中的所有方法:suite.addTest(unittest.makeSuite(测试类名))
# makeSuite即将废弃,所以有横线提示
suite.addTest(unittest.makeSuite(TestcaseDemo1_2))
# 4.实例化运行对象
runner = unittest.TextTestRunner() # 框架固定写法
# 5.使用运行对象去执行套件对象:运行对象runner,调用run方法,参数是套件对象suite
runner.run(suite)
# 什么情况下用TestLoader:TestCase有很多,使用一行代码加载所有TestCase
# 1.导包
import unittest# 2.实例化测试加载对象,并添加用例,加载完成后得到的是suite对象
# 在一个项目里,测试用例通常放在一个目录里unittest.TestLoader().discover(用例所在的路径(相对),用例代码文件名使用*通配符)
# suite = unittest.TestLoader().discover('.', 'hpp_TestCase*')
# 使用默认的加载对象并加载用例
suite = unittest.defaultTestLoader.discover('TestCase', 'hpp_TestCase*')
# 3.运行对象执行套件对象
# runner = unittest.TextTestRunner()
# runner.run(suite)
unittest.TextTestRunner().run(suite)
# 在某些特定情况下会自动执行的一种代码结构
# 方法级别:用例代码执行前后都会调用的结构
# 方法执行之前:def setup(self):在每个测试方法执行之前都会执行
# 方法执行之后:def teardown(self):每个测试方法执行之后都会执行
# --------------------------------------------------
# 类级别:在每个测试类中所有方法执行前后都会自动调用,在整个类中只会执行一次
# 类级别的Fixture方法,是一个类方法
# 类中所有方法之前
"""
@classmethod
def setupClass(cls):pass
"""
# 类中所有方法之后
"""
@classmethod
def teardownClass(cls):pass
"""
# ------------------------------------------------------------------
# 模块级别(了解):在每个代码文件执行前后执行的代码结构,写在类外边,直接定义函数即可
# 代码文件之前:def setupModule()
# 代码文件之后: def teardownModule()
# ----------------------------------------------------------------
# 方法级别和类级别的Fixture方法,不一定非要都前后都有,根据需求写就可以
# ---------------------------------------------------------------
import unittestclass TestLogin(unittest.TestCase):@classmethoddef setUpClass(cls):print("打开浏览器")@classmethoddef tearDownClass(cls):print('关闭浏览器')def setUp(self):print("测试前输入网址")def tearDown(self):print("测试后关闭当前页")def test_1(self):print('测试数据1')def test_2(self):print('测试数据2')
相关文章:
Python基础学习016__UnitTest
# UnitTest是python自带的一个单元测试框架,不需要额外安装 # 也是自动化脚本执行框架,使用UnitTest来管理,运行多个框架 # 为什么使用:能够组织多个用例去执行.提供了丰富的断言方法,能够生成测试报告 # 核心要素: # Testcase:测试用例:这个测试用例是UnitTest的组成部分,不是…...
一物一码需求,标签制作功能轻松解决
许多行业存在为人员、物品、设备等做一物一码标签的需求,可使用草料标签制作功能。直接选择标签样式,填入数据,即可批量生成标签,还可批量排版,更易落地。还可保存标签样式,后续多次复用样式,批…...
【Linux】七、基础IO
预备知识 文件 属性(本质上也是数据)内容; 文件的所有操作大致有两种,对内容的操作,和对属性的操作; 文件在磁盘中放置,磁盘是硬件,只有操作系统可以真正的访问磁盘;C\C…...
Elasticsearch语法之Term query不区分大小写
设置关键词是否区分大小写 说明:case_insensitive是term的可选参数,默认为false,表示关键词区分大小写,设置为true表示关键词不区分大小写。该参数在7.10.0开始有效 需求:分别使用关键词"iphone"和"I…...
远程管理SSH服务
一、搭建SSH服务 1、关闭防火墙与SELinux # 关闭firewalld防火墙 # 临时关闭 systemctl stop firewalld # 关闭开机自启动 systemctl disable firewalld # 关闭selinux # 临时关闭 setenforce 0 # 修改配置文件 永久关闭 vim /etc/selinux/config SELINUXdisabled 2、配置…...
Linux 实现原理 — NUMA 多核架构中的多线程调度开销与性能优化
前言 NOTE:本文中所指 “线程” 均为可执行调度单元 Kernel Thread。 NUMA 体系结构 NUMA(Non-Uniform Memory Access,非一致性存储器访问)的设计理念是将 CPU 和 Main Memory 进行分区自治(Local NUMA node&#x…...
Oracle锁处理
背景: 随着数据库版本不断迭代更新, v$session 视图的内容越来越丰富,可以直接使用blocking_session、blocking_instance、final_blocking_instance和final_blocking_session字段进行定位。对于锁层次的排查可以重复查询v$session来确定&am…...
持续集成交付CICD:安装Jenkins Slave(从节点)
目录 一、实验 1.安装Jenkins Slave(从节点) 二、问题 1.salve节点启动jenkins报错 2.终止命令行后jenkins从节点状态不在线 一、实验 1.安装Jenkins Slave(从节点) (1)查看jenkins版本 Version 2.…...
Dart(一):Dart入门
Dart入门 Dart安装创建项目安装依赖(以http为例)依赖库查询地址添加依赖编写运行示例 dart常用命令引用核心库、自定义库、第三方库数据类型Numbers (int, double)Strings (String)Booleans (bool)Lists (List)Maps (Map)Sets (Set)Null (null)Records (…...
[动态规划] (十一) 简单多状态 LeetCode 面试题17.16.按摩师 和 198.打家劫舍
[动态规划] (十一) 简单多状态: LeetCode 面试题17.16.按摩师 和 198.打家劫舍 文章目录 [动态规划] (十一) 简单多状态: LeetCode 面试题17.16.按摩师 和 198.打家劫舍题目分析题目解析状态表示状态转移方程初始化和填表顺序 代码实现按摩师打家劫舍 总结 注:本题与…...
【EI会议投稿】第三届计算机、人工智能与控制工程国际学术会议 (CAICE 2024)
The 3rd International Conference on Computer, Artificial Intelligence and Control Engineering (CAICE 2024) 第三届计算机、人工智能与控制工程国际学术会议 第三届计算机、人工智能与控制工程国际学术会议(CAICE 2024)将于2024年1月26-28日在西…...
python 之 列表推导式
文章目录 基本结构示例 1:将列表中的元素乘以 2 添加条件判断示例 2:筛选出偶数并加倍 嵌套列表推导式示例 3:生成九九乘法表 使用条件表达式示例 4:根据条件返回不同的值 镶嵌使用详细介绍基本结构示例生成二维数组多重筛选和操作…...
【左程云算法全讲2】链表、栈、队列、递归、哈希表和有序表
系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于左程云算法课程进行的,每个知识点的修正和深入主要参考…...
SQL第三次上机作业
1.查询与王利就读同一专业学生的借书证号和姓名 SELECT Lno,Rname FROM Reader WHERE Dept(SELECT DeptFROM ReaderWHERE Rname王利)2.查询比希望出版社出版的所有图书价格都高的图书信息 SELECT * FROM Book WHERE Price>(SELECT MAX(Price)FROM BookWHERE Press希望出版…...
前端事件案例补充
目录 定时器示例 搜索框示例 省市联动 定时器示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><meta name"viewport" content"widthdevice-width, init…...
3.8 Android eBPF HelloWorld调试(二)
写在前面 我们开发eBPF程序的初衷就是再不改动内核的情况下,将内核监控数据传递给到用户态;像应用进程开发一样开发内核监控程序。 Android开机的时候eBPF程序被加载器加载到内核中,但此时它并没有被附加到内核函数上去,也就是ebpf程序并不会执行,我们可以理解为,它仅仅被…...
xss如何快速提取cookies
<script>alert(111)</script> <img srcx onerroralert(document.cookie)>测试一下baidu的xss <script>alert(111)</script><img srcx οnerrοralert(document.cookie)>...
在 ASP.NET C# 中用Aspose.PDF将 PDF 页面转换为 JPG 图像
PDF 是一种通用格式,通常用于打印和共享文档。 (一)C# PDF to JPG Converter API - 免费下载 Aspose.PDF for .NET是一个强大的 PDF 操作 API,可让您在 .NET 应用程序中创建和处理 PDF 文件。此外,它还允许您将 PDF 文…...
Docker Compose安装milvus向量数据库单机版-milvus基本操作
目录 安装Ubuntu 22.04 LTS在power shell启动milvus容器安装docker desktop下载yaml文件启动milvus容器Milvus管理软件Attu python连接milvus配置下载wget示例导入必要的模块和类与Milvus数据库建立连接创建名为"hello_milvus"的Milvus数据表插入数据创建索引基于向量…...
极致性能优化:前端SSR渲染利器Qwik.js | 京东云技术团队
引言 前端性能已成为网站和应用成功的关键要素之一。用户期望快速加载的页面和流畅的交互,而前端框架的选择对于实现这些目标至关重要。然而,传统的前端框架在某些情况下可能面临性能挑战且存在技术壁垒。 在这个充满挑战的背景下,我们引入…...
HarmonyOS6 半年磨一剑 - RcCheckbox 组件事件体系与交互逻辑
文章目录前言一、点击处理链1.1 核心点击处理函数1.2 两个点击入口二、三事件分层设计2.1 三个事件的对比2.2 事件使用示例三、labelDisabled 局部禁止机制3.1 设计意图3.2 适用场景四、RcCheckboxGroup 的数量限制拦截4.1 min/max 拦截机制4.2 数量限制示例总结前言 一个看似…...
Mysql 支持的复制类型
MySQL 的复制可以从两个维度进行分类,分别对应数据一致性和日志格式。下面分别说明。 一、按数据一致性分类 复制类型 机制 优点 缺点 适用场景 异步复制 主库提交事务后立即返回,不等待从库确认 性能最高,主库无延迟 主库故障可能丢失已提交事务 对一致性要求不高的场景(如…...
别再纠结选哪个了!CAN、串口、蓝牙、TCP,手把手教你根据项目场景选通信协议(附Android实战代码)
通信协议选型实战指南:从车载系统到智能家居的黄金法则 当你在凌晨三点的办公室里盯着四块显示器,面前摆着CAN分析仪、蓝牙嗅探器和串口调试终端时,突然意识到项目deadline就在明天——这种场景对嵌入式开发者来说再熟悉不过了。选择错误的通…...
保姆级教程:用YOLOv11+PyQt5打造你的专属天气识别桌面应用(附完整源码)
从零构建基于YOLOv11的智能天气识别桌面应用 窗外阴云密布,你是否曾好奇此刻的天气状况究竟如何?现代计算机视觉技术让机器也能像人类一样"看懂"天气。本文将带你完整实现一个能识别11种天气类型的桌面应用,从模型加载到界面交互&a…...
3大核心功能揭秘:CELLxGENE如何让单细胞数据分析变得如此简单
3大核心功能揭秘:CELLxGENE如何让单细胞数据分析变得如此简单 【免费下载链接】cellxgene An interactive explorer for single-cell transcriptomics data 项目地址: https://gitcode.com/gh_mirrors/ce/cellxgene 在单细胞转录组学研究中,数据分…...
COLMAP点云处理完,用Brush做高斯泼溅前,这5个参数调优让你的3D模型质感飙升
COLMAP点云处理完,用Brush做高斯泼溅前,这5个参数调优让你的3D模型质感飙升 当你已经能够顺利跑通从COLMAP到Brush的完整流程,却发现生成的3D模型总是差那么点意思——要么细节模糊得像打了马赛克,要么表面噪点多得像撒了胡椒面&a…...
虚幻引擎+数字孪生:手把手搭建智慧校园三维可视化平台(附浙江工商大学实战案例)
虚幻引擎数字孪生:从零构建智慧校园三维可视化平台的完整指南 想象一下,清晨走进校园时,管理员已经在三维可视化平台上完成了安防巡查;教务主任通过热力图调整着今天的课程安排;后勤人员正根据实时数据优化能源分配——…...
Anthropic泄露新一代Claude Mythos 模型,具备网络安全漏洞检测优势
配置错误曝光新模型Anthropic PBC 内容管理系统的一处配置错误意外泄露了其正在测试的新型大语言模型 Claude Mythos。该公司周四向《财富》杂志证实,工程师已完成该模型的训练工作,目前正与早期客户进行试点测试。Anthropic 强调这是其"迄今为止构…...
暗黑破坏神2存档编辑器完全指南:从技术原理到实战应用
暗黑破坏神2存档编辑器完全指南:从技术原理到实战应用 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 价值定位:为什么d2s-editor能重塑你的游戏体验 你是否曾因反复刷不到心仪装备而失去耐心࿱…...
从‘猫狗大战’到医疗影像:LRP(逐层相关性传播)如何帮医生看懂AI的‘诊断思路’?
从‘猫狗大战’到医疗影像:LRP如何成为医生与AI的翻译官 当一位放射科医生第一次看到AI系统标注的肺结节"恶性概率92%"时,他的反应不是赞叹,而是皱眉:"它凭什么这么判断?"这种场景正在全球各大医院…...
