(1)pytest简介和环境准备

1. pytest简介

  pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点:

  • 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
  • 能够支持简单的单元测试和复杂的功能测试
  • 支持参数化
  • 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
  • 支持重复执行(rerun)失败的case
  • 支持运行由nose, unittest编写的测试case
  • 可生成html报告
  • 方便的和持续集成工具jenkins集成
  • 可支持执行部分用例
  • 具有很多第三方插件,并且可以自定义扩展

2. 安装pytest

   pytest是python语言的一个测试的第三方的库,那么我们首先需要-安装它。

2.1 安装方法

  因为pytest是python语言的一个测试的第三方的库,所以安装方法和第三方类库一样通过命令,命令如下:

pip install -U pytest

 

2.2 查看是否安装成功

  出现如下红色圈起的部分,会简单点英文的,都知道说明安装成功

 

2.3 查看安装版本

2.3.1pip show pytest查看安装的版本

pip show pytest

 

2.3.2pytest --version查看安装的版本

pytest --version

 

3. 实践一下

  1.新建一个test.py文件,(文件命名以test_*开头或者*_test结尾)

3.1 代码实现:

 

3.2 参考代码:

# coding=utf-8
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 1.导入模块# content of test_bjhg_sample.py
def func(x):return x +1def test_answer():assert func(3)==5

3.3 运行结果:

3.3.1 第一种运行代码方法

  在terminal中输入pytest(或者输入py.test也可以),运行代码后,控制台打印如下图的结果

 

3.3.1 第二种运行代码方法

  打开test.py所在的文件夹,cmd窗口输入:pytest(或者输入py.test也可以),运行代码后,控制台打印如下图的结果

 

  3.pytest运行规则:**查找当前目录及其子目录下以test_*.py或*_test.py文件,找到文件后,在文件中找到以test开头函数并执行。**

4. 执行测试类

  1.前面是写的一个test开头的测试函数,当用例用多个的时候,写函数就不太合适了。这时可以把多个测试用例,写到一个测试类里。

4.1 代码实现:

 

4.2 参考代码:

# coding=utf-8
# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行
# 1.导入模块# content of test_class.py
class TestClass:def test_one(self):x = "this"assert "h" in xdef test_two(self):x = "hello"assert hasattr(x, "check")

4.3 运行结果:

  运行代码后,控制台打印如下图的结果

 

  2.打开cmd,cd到test_class.py的文件目录,如果只想运行这个文件,加上-q参数,-q参数用来指定执行的文件,不指定就执行该文件夹下所有的用例。pytest会找到符合规则(test_.py和_test.py)所有测试,因此它发现两个test_前缀功能。 如果只想运行其中一个,可以指定传递文件名test_class.py来运行模块:

  备注: -q, --quiet decrease verbosity( 显示简单结果)

py.test -q test_class.py

  第一次测试通过,第二次测试失败。 您可以在断言中轻松查看失败的原因。

5. 使用规则

测试文件以test_开头(以_test结尾也可以)
测试类以Test开头,并且不能带有 __init__ 方法
测试函数以test_开头
断言使用assert

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.5 R语言解题

本文是实验设计与分析&#xff08;第6版&#xff0c;Montgomery著&#xff0c;傅珏生译) 第5章析因设计引导5.7节思考题5.5 R语言解题。主要涉及方差分析&#xff0c;正态假设检验&#xff0c;残差分析&#xff0c;交互作用图。 dataframe <-data.frame( wrapc(17,20,12,9,…

线程池的详细知识(含有工厂模式)

前言 下午学习了线程池的知识。重点探究了ThreadPoolExecutor里面的各种参数的含义。我详细了解了这部分的知识。其中有一个参数涉及工厂模式&#xff0c;我将这一部分知识分享给大家~ 线程池的详细介绍(含工厂模式) 结语 分享到此结束啦。byebye~

嵌入式开发学习(第二阶段 C语言笔记)

内存操作 我们对于内存操作需要依赖于string.h头文件中相关的函数库。 内存操作函数 内存填充 头文件&#xff1a;#include <string.h> 函数原型&#xff1a; void* memset(void *s,int c,size_t n)函数功能&#xff1a;将内存块s的前n个字节填充为c&#xff0c;一般…

C++学习-入门到精通【9】面向对象编程:继承

C学习-入门到精通【9】面向对象编程&#xff1a;继承 目录 C学习-入门到精通【9】面向对象编程&#xff1a;继承一、基类与派生类CommunityMember类的继承层次结构如何定义一个派生类呢 二、基类和派生类间的关系1.创建并使用类CommissionEmployee2.不使用继承创建类BasePlusCo…

黑马k8s(十七)

一&#xff1a;高级存储 1.高级存储-pv和pvc介绍 2.高级存储-pv 3.高级存储-pvc 最后一个改成5gi pvc3是没有来绑定成功的 pv3没有绑定 删除pod、和pvc&#xff0c;观察状态&#xff1a; 4.高级存储-pc和pvc的生命周期 二&#xff1a;配置存储 1.配置存储-ConfigMap 2.配…

cf每日刷题c++

目录 Simple Repetition&#xff08;1000&#xff09; Fashionable Array&#xff08;800&#xff09; Kevin and Arithmetic(800) Permutation Warm-Up(800) Game of Mathletes(900) LRC and VIP(800) Simple Repetition&#xff08;1000&#xff09; https://codeforc…

历年中国科学技术大学计算机保研上机真题

2025中国科学技术大学计算机保研上机真题 2024中国科学技术大学计算机保研上机真题 2023中国科学技术大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school?classification1 拆分数字 题目描述 给定一个数字&#xff0c;拆分成若干个数字之和&#xff…

PHP学习笔记(十一)

类常量 可以把在类中始终保持不变的值定义为常量&#xff0c;类常量的默认可见性是public。 接口中也可以定义常量。 可以用一个变量来动态调用类&#xff0c;但该变量的值不能为关键字 需要注意的是类常量只为每个类分配一次&#xff0c;而不是为每个类的实例分配。 特殊的…

Nginx 性能优化全解析:从进程到安全的深度实践

一、进程优化&#xff1a;释放硬件性能潜力 Nginx 通过多工作进程处理请求&#xff0c;合理配置进程参数能充分利用 CPU 资源&#xff0c;避免资源浪费。 1.1 worker_processes 参数详解 worker_processes用于设置 Nginx 工作进程的数量&#xff0c;它直接影响 Nginx 对 CP…

中国移动咪咕助力第五届全国人工智能大赛“AI+数智创新”专项赛道开展

第五届全国人工智能大赛由鹏城实验室主办&#xff0c;新一代人工智能产业技术创新战略联盟承办&#xff0c;华为、中国移动、鹏城实验室科教基金会等单位协办&#xff0c;广东省人工智能与机器人学会支持。 大赛发布“AI图像编码”、“AI增强视频质量评价”、“AI数智创新”三大…

《 PyTorch 2.3革新:torch.compile自动生成CUDA优化内核全解》

CUDA作为NVIDIA推出的并行计算平台和编程模型&#xff0c;为GPU计算提供了强大的支持&#xff0c;但手动优化CUDA代码不仅需要深厚的专业知识&#xff0c;而且过程繁琐、耗时费力&#xff0c;torch.compile的出现&#xff0c;犹如一道曙光&#xff0c;为解决这一困境带来了全新…

mysql-mysql源码本地调试

前言 先进行mysql源码本地编译&#xff1a;mysql源码本地编译 1.本地调试 这里以macbook为例 1.使用vscode打开mysql源码 2.创建basedir目录、数据目录、配置文件目录、配置文件 cd /Users/test/ mkdir mysqldir //创建数据目录和配置目录 cd mysqldir mkdir conf data …

带你手写React中的useReducer函数。(底层实现)

文章目录 前言一、为什么需要 Reducer&#xff1f;二、Reducer 的核心概念1. Reducer 函数2. useReducer 钩子 三&#xff0c;手写react中的useReducer 总结 前言 在 React 开发中&#xff0c;useReducer 是管理复杂状态逻辑的利器。它类似于 Redux 的简化版&#xff0c;允许我…

用wireshark抓了个TCP通讯的包

昨儿个整理了下怎么用wireshark抓包&#xff0c;链接在这里&#xff1a;捋捋wireshark 今天打算抓个TCP通讯的包试试&#xff0c;整体来说比较有收获&#xff0c;给大家汇报一下。 首先就是如何搞到可以用来演示TCP通讯的客户端、服务端&#xff0c;问了下deepseek&#xff0c;…

运维 pgsql 安装完后某次启动不了

pgsql 安装完后某次启动不了 错误 data directory "/usr/local/postgresql/data" has invalid permissions 安装成功后一直可以 后面同事敲了 chmod -R 777 /usr/local 导致不行 改到了 /usr/local/postgresql/data 权限 /usr/local/postgresql/data的权限有限…

查看·电脑安装·的 .NET 版本

方法 一&#xff1a;使用命令提示符或 PowerShell 打开命令提示符或 PowerShell。 输入以下命令&#xff1a;dotnet --version 按下回车键。 命令输出将显示已安装的 .NET 版本。 方法二&#xff1a;使用 .NET Framework 控制面板 打开控制面板。 点击“程序”。 点击“程序…

Linux WiFi 模组使用及故障排查整理文档

Linux WiFi 模组使用及故障排查整理文档 1. STA 模式下 WiFi 延时不稳定问题解决方法&#xff1a; 2. Power Saving 机制说明3. AP 模式下 WiFi 设置4. RTL8821CS AP 模式下 Windows 客户端异常断开问题问题描述问题原因解决方案步骤 1&#xff1a;修改 dnsmasq 配置步骤 2&…

mac mini m4命令行管理员密码设置

附上系统版本图 初次使用命令行管理员&#xff0c;让输入密码&#xff0c;无论是输入登录密码还是账号密码&#xff0c;都是错的&#xff0c;百思不得其解&#xff0c;去网上搜说就是登录密码啊 直到后来看到了苹果官方的文档 https://support.apple.com/zh-cn/102367 https…

栈内行为分析

栈内行为分析 一、源码分析 我们以以下简单的 C 程序为例&#xff0c;通过 GDB 动态调试分析函数调用过程中的栈内布局变化&#xff1a; #include <stdio.h> int add(){int a 10;int b 20;return (a b); }int main() {add();return 0; }编译为 32 位程序&#xff1a…

老旧设备数据采集破局 AI图像解析如何让质检LIMS系统焕发新生

在实验室数字化进程中&#xff0c;大量服役超过 10 年的老旧设备成为数据采集的 “拦路虎”&#xff1a;指针式仪表盘需人工读取、纸质原始记录靠手工录入、非标准接口设备数据无法自动获取…… 某化工实验室因 15 台老旧设备数据采集耗时占比达 40%&#xff0c;检测效率长期滞…