【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 '开头的测试函数),执行它们,并报告结果。

相关推荐
段一凡-华北理工大学8 小时前
工业智能体:从Codex/Claude到项目实战~系列文章05:从“AI助手“到“工业智能体“:能力跃迁与落地范式
人工智能·python·claude·codex·工业智能体·高炉炼铁智能化
深蓝AI8 小时前
ContextVar 到线程池就丢了?asyncio.to_thread 和 run_in_executor 实测
python
岁月宁静9 小时前
什么是 Agent:从"会聊天"到"会做事"
人工智能·python
岁月宁静9 小时前
AI 应用开发工程师简历怎么写:HR 初筛、技术复筛、面试追问,三道关卡各看什么?
人工智能·python·面试
来让爷抱一个10 小时前
Python 异步里混用同步库,事件循环被卡住的全过程
开发语言·python
小肝一下12 小时前
3.基础语法(3)
python
深蓝AI12 小时前
Python 子进程树:父进程被杀后,孙进程为何还在跑?
python
心祭丫丫13 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
爱你真是太好了13 小时前
Skill 索引瘦身与渐进加载
python
贾公子13 小时前
检测链路的容量规划——用 Little's Law 算清 QPS、并发与积压
后端·python