【python】python 测试,为什么我们需要测试,pytest的使用

为什么需要测试

🔥测试,软件开发的秘密武器🔥

✨大家好,今天就来跟大家聊聊软件开发中的一项超级重要的环节——测试!👀

🎯测试,是软件开发的灵魂,是确保代码正确运行****,满足需求,实现预期功能的秘密武器!💪

🌈它就像是一个质量守护者,帮助我们提前抓住那些潜在的bug和错误,确保我们交付的是一个高质量的产品。💯

💸而且,早期发现并解决问题,可以大大减少未来的修复成本,让我们的开发之路更加顺畅!💰

📌测试还可以验证新功能是否按预期工作,以及修改现有代码是否会引起其他问题,为我们的开发过程提供了强大的保障。🔒

🔄更重要的是,有了自动化测试,我们可以更安心地进行代码重构和添加新功能,因为它们会迅速告诉我们是否对现有的功能产生了负面影响。🚀

📖此外,精心编写的测试还可以作为代码的文档,让其他人(包括未来的你)更容易理解代码工作原理。📚

💖最后,拥有一套完善的测试套件,不仅可以给开发者和利益相关者带来信心,更能确保软件的稳定性和可靠性。❤️

🎉总之,测试是创建健壮、可靠、易维护软件的关键实践,是对代码库的一次值得的投资,它会在软件的整个生命周期中持续回报我们。🎊

pytest

  1. 安装:使用虚拟环境安装pytest,使用命令’ pip install pytest '。

  2. 编写测试:学会了创建一个带有’ test_ ‘前缀的测试文件(例如,’ test_sample.py ‘),并在该文件中以’ test_ '开头编写测试函数。

  3. 运行测试:学会了通过在终端输入’ pytest ‘来运行测试。’ pytest '根据其命名约定自动发现并运行测试。

  4. 测试发现:’ pytest ‘通过在文件名,类名和函数名中查找’ test_ '前缀来查找测试函数。

  5. 输出说明:了解到’ pytest '提供了一个显示测试结果的输出,用圆点表示通过的测试,最后是摘要。

  6. 没有测试函数:如果没有发现测试函数,’ pytest '将报告没有运行测试。

  7. 运行单个测试文件:要从单个文件运行测试,请使用’ pytest path/ To /your/test_file.py '。

  8. 在一个目录中运行测试:要从特定目录运行测试,请使用pytest path/ To /your/test_directory/ '。

pytest 例子

伟大的选择!“pytest”是一个强大而灵活的测试工具,许多开发人员都喜欢使用它。要开始使用“pytest”,请遵循以下步骤。

# #的安装

首先,您需要安装’ pytest '。在虚拟环境中这样做是一个很好的做法:

’ ’ ’ sh
#如果你还没有在虚拟环境中,设置一个
Python -m venv venv

#激活虚拟环境
#在Windows上:
venv \ \激活脚本
#在macOS/Linux上:
源venv / bin /激活

安装pytest
PIP安装pytest
’ ’ ’

编写你的第一个测试

为您的测试创建一个新文件,例如’ test_sample.py ',并在文本编辑器中打开它。

让我们假设你有一个简单的函数要测试,比如下面的’ add ‘函数,你可以把它保存在一个名为’ calculator.py '的文件中:

”“python

calculator.py

Def add(a, b):return a + b

现在,让我们在’ test_sample.py '中为这个函数写一个测试:

”“python

test_sample.py

从计算器导入添加

def test_add():assert add(2,3) == 5assert add(2-2) == 0assert add(-1-1) == -2

在这个测试函数中,我们使用“assert”语句来验证“add”函数是否返回预期的结果。

运行测试

打开您的终端(确保您在安装’ pytest ‘的虚拟环境中),导航到包含’ test_sample.py '文件的目录,并运行:

pytest

’ pytest ‘将自动发现遵循其约定的测试(以’ test_ ‘开头或以’ test.py ‘结尾的测试文件,以及以’ test '开头的测试函数),执行它们,并报告结果。

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

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

相关文章

MySQL中innodb_status_output_locks含义和用法

innodb_status_output_locks 是一个MySQL系统变量,它决定了是否在 SHOW ENGINE INNODB STATUS 输出中包含详细的锁定信息。其主要用途是帮助分析和诊断InnoDB存储引擎中的锁定问题,比如事务死锁或长时间持有的锁导致的性能问题。 当innodb_status_outpu…

补充知识

补充知识1 内存的本质是对数据的临时存储 内存与磁盘进行交互时, 最小单位是4kb叫做页框(内存)和页帧(磁盘) 也就是, 如果我们要将磁盘的内容加载到内存中, 可是文件大小只有1kb, 我们也要拿出4kb来存他, 多余的就直…

基于Leaflet.js和Turf.js的等值线区间自定义及颜色自适应实践

目录 前言 一、Turf.js等值线相关制作 1、生成方法 2、主要参数 二、实际案例开发 1、新建展示页面 2、等值线生成 3、基于Leaflet的再优化 总结 前言 在气象方面的GIS应用当中,会根据实际的工作需要建立不同的监测站点。气象监测站的主要功能包括&#xff1…

pnpm--安装与使用

原文网址:pnpm--安装与使用-CSDN博客 简介 本文介绍pnpm的安装与使用。 pnpm由npm/yarn衍生而来,解决了npm/yarn内部潜在的bug,极大的优化了性能,扩展了使用场景,被誉为“最先进的包管理工具”,速度快、…

HTTP/2 牛逼在哪?(计算机网络)

兼容HTTP/ 1.1 第一点,HTTP/2 出来的目的是为了改善 HTTP 的性能。协议升级有一个很重要的地方,就是要兼容老版本的协议,否则新协议推广起来就相当困难, HTTP/2 做到了兼容 HTTP/1.1。 1.HTTP/2 没有在 URI 里引入新的协议名&…

变量重名情况

变量重名 变量的使用规则:就近原则 第一种情况:局部变量和成员变量重名,使用this关键字访问成员变量 第二种情况:子类成员变量和父类成员变量重名,使用super关键字访问父类成员变量 // 父类 public class Fu {int …

【C语言】凯赛密码的加密和解密

凯撒密码是一种简单的替换加密方法,其原理是将明文中的每个字母按照指定的偏移量进行替换,从而得到密文。在下面的C语言代码中,我们实现了凯撒密码的加密和解密过程。这段代码的优点是简单易懂,实现了凯撒密码的基本功能。然而&am…

舞蹈网站制作分享,舞蹈培训商城网站设计案例分享,wordpress主题分享

嘿,朋友们!今天我要跟你们唠一唠一个超级酷炫的舞蹈培训商城网站设计案例。 咱先说说这个网站的目标哈,那就是得让喜欢舞蹈的小伙伴们能够轻轻松松找到自己心水的课程和商品。 那制作过程都有啥呢?别急,听我慢慢道来。…

C#常见Winform窗体效果

目录 1&#xff0c;窗体闪烁。 2&#xff0c;透明非矩形的窗体。 3&#xff0c;窗口显示&#xff0c;退出呈现平滑效果。 4&#xff0c;窗体不在任务栏中显示&#xff1a; 1&#xff0c;窗体闪烁。 /// <summary>/// 窗体闪烁/// </summary>/// <param na…

在c# 7.3中不可用,请使用9.0或更高的语言版本

参考连接&#xff1a;在c# 7.3中不可用,请使用8.0或更高的语言版本_功能“可为 null 的引用类型”在 c# 7.3 中不可用。请使用 8.0 或更高的语言版本-CSDN博客https://blog.csdn.net/liangyely/article/details/106163660 [踩坑记录] 某功能在C#7.3中不可用,请使用 8.0 或更高的…

ubuntu install Python3

1. 安装ppa源 首先要知道的是&#xff0c;在Ubuntu的默认源中&#xff0c;Python 3.8是不支持安装的&#xff0c;因此需要添加ppa源。打开终端输入以下命令&#xff1a; sudo add-apt-repository ppa:deadsnakes/ppa 2. 更新apt-get 添加ppa源之后&#xff0c;需要更新一下…

STM32 | 通用同步/异步串行接收/发送器USART带蓝牙(第六天原理解析)

STM32 第六天 一、 USART 1、USART概念 USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行接收/发送器 USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备 处理器与外部设备通信的两种方式: u并行通信(…

摸鱼123

摸鱼https://toyaml.com/windowsupdate.html

【漏洞复现】用友NC-Cloud文件服务器用户登陆绕过漏洞

Nx01 阅读须知 如棠安全的技术文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的…

51单片机学习笔记13 红外遥控接收

51单片机学习笔记13 红外遥控接收 一、红外遥控1. **发射原理**2. **接收原理**3. **发射、接收示例** 二、编码、解码1. **编码方式分类**&#xff1a;&#xff08;1&#xff09;Pulse Distance Modulation (PDM) 脉冲距离调制&#xff1a;&#xff08;2&#xff09;Pulse Wid…

【C++】哈希之位图

目录 一、位图概念二、海量数据面试题 一、位图概念 假如有40亿个无重复且没有排序的无符号整数&#xff0c;给一个无符号整数&#xff0c;如何判断这个整数是否在这40亿个数中&#xff1f; 我们用以前的思路有这些&#xff1a; 把这40亿个数遍历一遍&#xff0c;直到找到为…

达梦DMHS-Manager工具安装部署

目录 1、前言 1.1、平台架构 1.2、平台原理 2、环境准备 2.1、硬件环境 2.2、软件环境 2.3、安装DMHS 2.3.1、源端DMHS前期准备 2.3.2、源端DMHS安装 2.3.3、目的端DMHS安装 3、DMHS-Manager客户端部署 3.1、启动dmhs web服务 3.2、登录web管理平台 4、添加DMHS实…

Docker、Kubernetes之间的区别

比较容器化工具&#xff1a;了解 Docker、Kubernetes 在应用程序部署和管理方面的差异。 基本概述 Docker 是一个流行的容器化平台&#xff0c;允许开发人员在容器中创建、部署和运行应用程序。 Docker 提供了一组工具和 API&#xff0c;使开发人员能够构建和管理容器化应用程…

SpringBoot中操作Bean的生命周期的方法

引言 在 Spring Boot 应用中&#xff0c;管理和操作 Bean 的生命周期是一项关键的任务。这不仅涉及到如何创建和销毁 Bean&#xff0c;还包括如何在应用的生命周期中对 Bean 进行精细控制。Spring 框架提供了多种机制来管理 Bean 的生命周期&#xff0c;这些机制使得开发者可以…

windows部署Jenkins并远程部署tomcat

目录 1、Jenkins官网下载Jenkins 2、安装Jenkins 3、修改Home directory 4、插件安装及系统配置 5、Tomcat安装及配置 5.1、修改配置文件,屏蔽以下代码 5.2、新增登录用户 5.3、编码格式修改 5.4、启动tomcat 6、Jenkins远程部署war包 6.1、General配置 6.2、Sourc…