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

相关推荐
SamChan9019 分钟前
用Python+Requests批量翻译PDF:从脚本到调度
后端·python·microsoft·ai·pdf·机器翻译
草莓熊Lotso20 分钟前
【LangChain】核心技术:嵌入模型与向量存储完全指南
服务器·网络·python·langchain
油丶酸萝卜别吃5 小时前
utils.js 说明文档
开发语言·javascript·ecmascript
leisoo80978 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
WangYan20228 小时前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost
不会代码的小猴9 小时前
21. 泛型编程上
开发语言·c++·笔记·算法
一只旭宝10 小时前
细讲C加加【9】C++ std::function与std::bind详解|仿函数、绑定器、类成员绑定、占位符、成员偏移指针
开发语言·c++·算法
金銀銅鐵11 小时前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
coder!mq12 小时前
说几个常见的语法糖?
java·开发语言·算法
gugucoding12 小时前
38. 【Java】Stream API(下):高级操作与性能
java·开发语言