当前位置: 首页 > news >正文

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在AvaotaA1全志T527开发板上使用AvaotaOS 部署 Docker 服务
  • 使用Ultralytics YOLO进行模型验证
  • 测试狗:“微观结构表征+理论计算”助力《Science》论文发表
  • 双向链表 -- 详细理解和实现
  • 51单片机(STC8051U34K64)_RA8889_SPI4参考代码(v1.3)
  • VIM模式之间的切换
  • 深圳比创达|EMC与EMI测试整改:打造电磁“绿色”产品的必经之路4
  • virturalBox+K8S部署jaeger-all-in-one
  • CentOS 6.5配置国内在线yum源和制作openssh 9.8p1 rpm包 —— 筑梦之路
  • 跨域解决方案处理
  • 【Linux网络】IP协议{初识/报头/分片/网段划分/子网掩码/私网公网IP/认识网络世界/路由表}
  • HTTP-概述
  • React Hooks学习笔记
  • redis源码分析之底层数据结构(一)-动态字符串sds
  • 【Git】取消追踪多个文件或目录
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【知识碎片】第三方登录弹窗效果
  • Apache Spark Streaming 使用实例
  • Cumulo 的 ClojureScript 模块已经成型
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java的Interrupt与线程中断
  • js 实现textarea输入字数提示
  • Python爬虫--- 1.3 BS4库的解析器
  • Rancher-k8s加速安装文档
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Vue.js 移动端适配之 vw 解决方案
  • 今年的LC3大会没了?
  • 马上搞懂 GeoJSON
  • 嵌入式文件系统
  • 探索 JS 中的模块化
  • 微信小程序--------语音识别(前端自己也能玩)
  • MPAndroidChart 教程:Y轴 YAxis
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (003)SlickEdit Unity的补全
  • (39)STM32——FLASH闪存
  • (CPU/GPU)粒子继承贴图颜色发射
  • (day6) 319. 灯泡开关
  • (done) 两个矩阵 “相似” 是什么意思?
  • (k8s)Kubernetes本地存储接入
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net web项目 调用webService
  • .NET 发展历程
  • .NET8使用VS2022打包Docker镜像
  • .Net中ListT 泛型转成DataTable、DataSet