【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

cpp 复制代码
Def add(a, b):
	return a + b

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

""python

test_sample.py

从计算器导入添加

cpp 复制代码
def test_add():
	assert add(2,3) == 5
	assert add(2, -2) == 0
	assert add(-1, -1) == -2

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

运行测试

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

cpp 复制代码
pytest

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

相关推荐
Adellle14 分钟前
设计模式指南 (Java 版) ㊁
java·开发语言·设计模式
CyrusYiVPP23 分钟前
手写 MCP Server:给问答机器人接上本地文件工具,Python 实战第 13 期
人工智能·python
Delightrs39 分钟前
Rust LeetCode238 算法题解
开发语言·算法·rust
特立独行的猫A1 小时前
cj-tauri:用仓颉写桌面与鸿蒙 PC 应用
java·后端·python
云上工程笔记1 小时前
SRT字幕一键转手绘动画:srt-whiteboard-animation的复刻实录
大数据·开发语言·javascript·人工智能·机器学习
zhanghaha13141 小时前
C# 系列教程_12 字符串 string 保姆级系统教程(面向新手,大量示例 + 原理讲解)
开发语言·数据库·c#
eggwyw1 小时前
PHP8.5怎么用ffmpeg提取视频里的字幕轨道
开发语言·php
瑞雪兆丰年兮1 小时前
JavaWeb-day07-MySQL(DQL&多表设计)
java·开发语言·数据库·sql·mysql·javaweb·web
ShineWinsu4 小时前
对于Qt:QDial常见属性以及信号的解析
开发语言·c++·qt·gui·客户端·旋钮·qdial
Java后端的Ai之路6 小时前
RAG 还是 Agent 自主检索?Claude Code 删掉向量库之后,我把选型讲透了
开发语言·人工智能·prompt·agent·rag