pytest使用报错(以及解决pytest所谓的“抑制print输出”)
1. 测试类的类名问题
#coding=utf-8import pytestclass TestClass1:def setup(self) -> None:print('setup')def test_01(self) -> None:print('test_01111111111111111111111')def test_02(self) -> None:print('test_02')
以上述代码为例,如果类名是Test开头,可以正常运行,并且输出print的内容,
如果以Test结尾
# coding=utf-8import pytestclass Class1Test:def setup(self) -> None:print('setup')def test_01(self) -> None:print('test_01111111111111111111111')def test_02(self) -> None:print('test_02')
代码可以运行,但是结果会报错

所以,必须严格按照要求,测试类的文件名 以 test_ 开头进行命名,测试类 以 Test 开头进行命名,测试方法以 test_ 开头进行命名
2. setup方法
如果有需要调用其他实体类在setup中进行实例化的,需要按照要求,以实际需要进行命名,不能直接写set方法,会找不到具体的类。
2.1 模块级别 setup_module()
模块级别,执行所有的测试用例之前会执行一遍,有且只有一次
2.2 函数级别 setup_function()
class类之外的函数执行一次,这个setup就会执行一次
2.3 类级别 setup_class()
类执行一次,就会执行一次
2.4 方法级别 setup_method()
类中的方法执行一次,就会执行一次
2.5 举例
#coding=utf-8
import pytestdef setup_module(module):print("初始化=================模块")def teardown_module(module):print("清理===================模块")def setup_function(module):print("初始化=================函数")def teardown_function(module):print("清理===================函数")def test_01():print("类外的函数方法1=========")assert 1+2==3def test_02():print("类外的函数2=========")assert 3+2==5class TestClass1:def setup_class(self):print("初始化==============类1")def teardown_class(self):print("清理================类1")def setup_method(self):print("初始化1==============方法")def teardown_method(self):print("清理1================方法")def test_1_01(self):print("类1 的 测试方法 1 ")assert 1+1 ==2def test_1_02(self):print("类1 的测试方法 2")assert 1+2 == 3
代码运行结果为
即
- 模块级别setup
- 函数setup1
- 函数teardown1
- 函数setup2
- 函数teardown2
- 类级别setup
- 方法setup1
- 方法teardown1
- 方法setup2
- 方法teardown2
- 类级别teardown
- 模块级别teardown
相关文章:
pytest使用报错(以及解决pytest所谓的“抑制print输出”)
1. 测试类的类名问题 #codingutf-8import pytestclass TestClass1:def setup(self) -> None:print(setup)def test_01(self) -> None:print(test_01111111111111111111111)def test_02(self) -> None:print(test_02)以上述代码为例,如果类名是Test开头&am…...
开源项目编译harbor arm架构的包 —— 筑梦之路
GitHub - amy5200/harbor-arm64 先做个记录,空了再验证...
[笔记] SKF Enveloping FAQ 用户指南
文档编号:Application Note CM3013 1.名词解释: 1.1cavitationWhat Is Cavitation? | Pumps & Systems 叶片在液体中扰动形成的超声波 1.2 stiff machinehttps://suspensionlist.com/the-pros-and-cons-of-stiff-vs-soft-suspension-systems/ …...
宪法学学习笔记(个人向) Part.3
宪法学学习笔记(个人向) Part 3 3. 国家基本制度 3.1 国家性质 3.1.1 国家性质概述 国家性质的概念 国家性质也称国体,或国家的阶级本质,是指各个阶级在国家中的地位(哪个阶层是统治阶层,哪个阶层是被统治阶层,哪个…...
联想拯救者Y7000 IRX9 笔记本接口功能介绍
适用机型:Legion Y7000 IRX9; 83JJ; USB(3.2 Gen 1)Type-接口摄像头开关组合音频插孔 多用于USB Type-C接口 以太网接口 多用途USB Type-C接口(支持USB Power Delivery)HDMI接口USB(3.2 Gen 1&…...
【ESP32】打造全网最强esp-idf基础教程——16.SmartConfig一键配网
SmartConfig一键配网 一、SmartConfig知识扫盲 在讲STA课程的时候,我们用的是代码里面固定的SSID和密码去连接热点,但实际应用中不可能这么弄,我们得有办法把家里的WiFi SSID和密码输入到设备里面去,对于带屏带输入设备还…...
MD5加密和注册页面的编写
MD5加密 1.导入包 npm install --save ts-md5 2.使用方式 import { Md5 } from ts-md5; //md5加密后的密码 const md5PwdMd5.hashStr("123456").toUpperCase(); 遇见的问题及用到的技术 注册页面 register.vue代码 <template><div class"wappe…...
【Android组件】封装加载弹框
📖封装加载弹框 ✅1. 构造LoadingDialog✅2. 调用LoadingDialog 效果: ✅1. 构造LoadingDialog 构造LoadingDialog类涉及到设计模式中的建造者模式,进行链式调用,注重的是构建的过程,设置需要的属性。 步骤一&#x…...
Spring源码二十:Bean实例化流程三
上一篇Spring源码十九:Bean实例化流程二中,我们主要讨论了单例Bean创建对象的主要方法getSingleton了解到了他的核心流程无非是:通过一个简单工厂的getObject方法来实例化bean,当然spring在实例化前后提供了扩展如:bef…...
前端导出文件时,后端代码出错如何将错误信息返回给前端展示
功能说明:前端导出excel时,后端出现异常,比如sql异常,或者创建excel时出现的异常,希望将这些异常信息返回给前端查看。 框架:vue3 axios Springboot 实现难度分析:前端导出excel,…...
解决Spring Boot应用中的内存优化问题
解决Spring Boot应用中的内存优化问题 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. Spring Boot应用的内存管理 在开发和部署Spring Boot应用时,有效地管理内存是确保应用性能和稳…...
shark云原生-日志体系-filebeat高级配置(适用于生产)-更新中
文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置生效2.3. Providers 提供者2.4. Providers kubernetes2.5. 配置 templates2.5.1. kubernetes 自动发现事件中的变量字段2.5.2 配置 templates 2.6. 基于…...
响应式设计的双璧:WebKit 支持 CSS Flexbox 和 Grid 布局深度解析
响应式设计的双璧:WebKit 支持 CSS Flexbox 和 Grid 布局深度解析 在现代网页设计中,响应式布局是实现跨设备兼容性的关键。CSS Flexbox 和 Grid 作为 CSS 布局的两大支柱,提供了强大的工具来构建灵活和复杂的用户界面。WebKit,作…...
Linux软件包管理
一、软件包管理 1.什么是软件包 一般在window系统的.exe是软件按转包 2.linux系统下的软件包安装方式 PRM 软件包安装 软件名称.rpmYUM 包管理工具 yum intall 软件名称 -y源码安装 下载源代码---编译---安装 很麻烦,稳定 3.二进制软件包 二进制 4.获取*.rpm…...
如何分辨AI生成的内容?AI生成内容检测工具对比实验
检测人工智能生成的文本对各个领域的组织都提出了挑战,包括学术界和新闻界等。生成式AI与大语言模型根据短描述来进行内容生成的能力,产生了一个问题:这篇文章/内容/作业/图像到底是由人类创作的,还是AI创作的?虽然 LL…...
Clion中怎么切换不同的程序运行
如下图,比如这个文件夹下面有那么多的项目: 那么我想切换不同的项目运行怎么办呢?如果想通过下图的Edit Configurations来设置是不行的: 解决办法: 如下图,选中项目的CMakeLists.txt,右键再点击…...
【C++初阶】C++入门(下)
【C初阶】C入门(下) 🥕个人主页:开敲🍉 🥕所属专栏:C🥭 🌼文章目录🌼 6. 引用 6.1 引用的概念 6.2 引用特性 6.3 常引用 6.4 使用场景 6.5 传值、传引用效率…...
【3】迁移学习模型
【3】迁移学习模型 文章目录 前言一、安装相关模块二、训练代码2.1. 管理预训练模型2.2. 模型训练代码2.3. 可视化结果2.4. 类别函数 总结 前言 主要简述一下训练代码 三叶青图像识别研究简概 一、安装相关模块 #xingyun的笔记本 print(xingyun的笔记本) %pip install d2l %…...
【工具分享】FOFA——网络空间测绘搜索引擎
文章目录 FOFA介绍FOFA语法其他引擎 FOFA介绍 FOFA官网:https://fofa.info/ FOFA(Fingerprinting Organizations with Advanced Tools)是一款网络空间测绘的搜索引擎,它专注于帮助用户收集和分析互联网上的设备和服务信息。FOFA…...
[嵌入式 C 语言] 按位与、或、取反、异或
若协议中如下图所示: 注意: 长度为1,表示1个字节,也就是0xFF,也就是 1111 1111 (这里0xFF只是单纯表示一个数,也可以是其他数,这里需要注意的是1个字节的意思) 一、按位…...
AI心智理论评估:VLM意图理解接近人类,但视角采样能力存在瓶颈
1. 项目概述:当AI“读懂”人心时,它在想什么?在人工智能领域,有一个听起来颇具哲学意味的挑战:如何让机器理解“心智”?这不仅仅是让AI识别图像中的物体或生成流畅的文本,而是让它能够像人类一样…...
芯片功能验证的范式革新:从约束随机到目标驱动的智能场景生成
1. 功能验证的十字路口:我们为何陷入困境?在芯片设计这个行当里摸爬滚打了十几年,我亲眼见证了功能验证从一个相对简单的环节,演变成如今整个设计流程中最耗时、最昂贵、也最令人头疼的瓶颈。这感觉就像你精心设计了一辆跑车&…...
Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.43
按照习惯,输入“docker ps”查看一下容器,结果给我来个这个错误:Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.43查了一下原因:这是因为使用云构建安装的默认 Docker 守护程…...
小型嵌入式系统开发流程与实践指南
1. 小型嵌入式系统开发流程概述在嵌入式系统开发领域,一个结构化的软件开发流程往往是项目成功的关键因素。与通用计算机软件开发不同,嵌入式系统通常具有资源受限、实时性要求高、硬件依赖性强等特点,这使得开发流程的设计需要特别考虑这些约…...
JAVA学习之JAVASE基础
集合列表ListArrayList利用空参创建的集合,在底层创建一个默认长度为0的数组添加第一个元素时,底层会创建一个新的长度为10的数组存满时,会扩容1.5倍一次存多个元素,1.5倍还不够,则新创建的数组长度以实际为准LinkedLi…...
【Keras+TensorFlow+Yolo3】从零构建自定义目标检测模型:实战标注、训练与部署(TF2避坑指南)
1. 环境准备与工具安装 目标检测是计算机视觉领域的重要应用,而YOLOv3作为其中的经典算法,凭借其速度和精度的平衡备受青睐。在开始实战前,我们需要搭建好开发环境。我推荐使用Anaconda创建独立的Python环境,这样可以避免不同项目…...
大模型多格式量化训练技术解析与应用实践
1. 多格式量化训练技术解析在大语言模型部署实践中,量化技术已经成为平衡计算效率和模型性能的关键手段。传统量化方案通常需要为每种目标精度单独训练和存储模型,这在资源受限的边缘设备上会带来显著的存储和管理开销。多格式量化训练(Multi-format QAT…...
【Oracle数据库指南】第03篇:Oracle SQL分组统计与排序——GROUP BY、HAVING与ORDER BY深度解析
上一篇【第02篇】Oracle SQL查询高级技巧——条件与函数 下一篇【第04篇】Oracle多表查询与连接操作——JOIN的全面解析 摘要 本文详细讲解Oracle SQL中的分组统计功能,包括分组函数(COUNT、SUM、AVG、MAX、MIN等)的用法、GROUP BY子句的多列…...
基于GPT的AI代码审查:GitHub Action自动化部署与实战指南
1. 项目概述:当AI成为你的代码审查搭档 在团队协作开发中,代码审查(Code Review)是保证代码质量、统一编码风格、传播知识的关键环节。但现实往往是,资深同事忙得脚不沾地,新人的PR(Pull Reque…...
轻量级视频稳定技术:EfficientMotionPro与OnlineSmoother解析
1. 轻量级视频稳定技术概述视频稳定技术是现代计算机视觉领域的重要研究方向,其核心目标是消除因相机抖动导致的画面不稳定现象。传统视频稳定方法通常依赖于复杂的光流计算或3D场景重建,这些方法虽然效果稳定,但计算开销巨大,难以…...
