当前位置: 首页 > ai >正文

初探 Pytest:编写并运行你的第一个测试用例

概述

当我们你完成了项目的搭建和结构设计,是时候开始编写你的第一个测试用例了。本文将引导你一步步完成这个过程,帮助你熟悉 Pytest 的基本使用方法。

项目的搭建和结构设计可参考 :从零开始搭建 Pytest 测试框架(Python 3.8 + PyCharm 版)

编写第一个测试用例

假设我们有一个简单的加法函数,位于 utils/common.py 文件中:

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

我们的目标是验证这个加法函数的行为是否正确。接下来,我们将编写一个测试用例来检查这个函数的输出是否符合预期。

第一步:创建测试文件

在之前搭建的项目结构中,你应该已经有了一个 tests 文件夹。我们现在要在这个文件夹内创建一个新的 Python 文件,比如命名为 test_sample.py
在这里插入图片描述

第二步:导入被测函数

打开 tests/test_sample.py 文件,并导入你在 utils/common.py 中定义的 add 函数:

from utils.common import add

第三步:编写测试逻辑

定义一个测试函数,根据 Pytest 的命名约定,测试函数的名字应该以 test_ 开头。这里我们定义一个名为 test_add 的函数,用于验证 add 函数的行为:

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

这段代码包含了几条断言(assertions),用来验证 add 函数返回的结果是否符合预期。

运行测试

编写完测试用例后,就可以运行它们了。有几种方法可以运行 Pytest 测试:

方法一:使用终端运行

  1. 打开终端或命令提示符。
  2. 导航到你的项目根目录(即包含 tests 文件夹的那个目录)。
  3. 输入以下命令来运行所有测试:
pytest

你会看到类似如下的输出:

============================= test session starts =============================
collected 1 itemtests/test_sample.py .                                                 [100%]============================== 1 passed in 0.01s ==============================

在这里插入图片描述
这说明你的测试通过了!

方法二:使用 PyCharm 运行

如果你使用的是 PyCharm,可以通过以下步骤运行测试:

  1. 打开 tests/test_sample.py 文件。
  2. 右键点击编辑器中的任意位置,选择 Run 'pytest in test_sample.py'
    在这里插入图片描述
    PyCharm 会自动调用 pytest 并显示运行结果

总结

在这篇文章中,我们一起完成了以下内容:

  • 编写了第一个测试用例,验证了一个简单的加法函数。
  • 学习了如何使用终端和 PyCharm 来运行测试
http://www.xdnf.cn/news/14285.html

相关文章:

  • .net6接口多个实现类使用特性标记并解析
  • React-router实现原理剖析
  • 基于SVD的推荐系统:详尽的原理与实践解析
  • 网络安全相关概念与技术详解
  • 高速 PCB 设计的材料选择,第 2 部分
  • ubuntu 22.04 安装部署kibana 7.10.0详细教程
  • Linux——libevent库
  • Python实例题:Python计算曲线曲面积分
  • 网页后端开发(基础2--maven单元测试)
  • useMemo vs useCallback:React 性能优化的两大利器
  • 如何通过 noindex 阻止网页被搜索引擎编入索引?
  • 哈希函数结构:从MD到海绵的进化之路
  • AudioLab安卓版:音频处理,一应俱全
  • Redis中的zset的底层实现
  • SeaTunnel与Hive集成
  • Chapter12-API testing
  • 极客时间《后端存储实战课》阅读笔记
  • 快速使用 Flutter 中的 SnackBar 和 Toast
  • Vue-Leaflet地图组件开发(四)高级功能与深度优化探索
  • 【JAVA】48. Semaphore信号量控制资源并发访问
  • Python函数基础知识(2/3)
  • 电阻篇---下拉电阻
  • 3_STM32开发板使用(STM32F103ZET6)
  • Spring Boot诞生背景:从Spring的困境到设计破局
  • MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
  • 基于AWS无服务器架构的区块链API集成:零基础设施运维实践
  • Java面试题:分布式ID时钟回拨怎么处理?序列号耗尽了怎么办?
  • VINS-Fusion 简介、安装、编译、数据集/相机实测
  • 传统数据仓库正在被 Agentic AI 吞噬
  • 超高速总线CDCTL01A 芯片在机器人领域的应用解析