Python pytest 模块:使用实例

Python pytest 模块:使用实例

pytest 是一个功能强大且灵活的 Python 测试框架,旨在使测试变得简单而有效。它支持简单的单元测试以及复杂的功能测试。pytest 的设计理念是让测试代码具有较好的可读性和简单的配置,同时提供丰富的插件体系,用户可以轻松扩展功能。pytest 适用于 Python 版本 3.6 及以上,并且可以与其他测试工具和框架集成。

应用场景

pytest 广泛应用于单元测试、集成测试和功能测试。在持续集成(CI)和持续部署(CD)的工作流中,pytest 能够帮助开发者自动化测试过程,确保代码质量。它适用于各类项目,包括 Web 开发、数据分析和机器学习等领域。在自动化测试、回归测试和性能测试场景下,pytest 都能发挥重要作用,大大提高开发和测试的效率。

安装说明

pytest 并不是 Python 的内置模块,您需要手动安装。可以使用以下命令通过 pip 轻松安装 pytest:

1
pip install pytest  # 安装pytest模块

用法举例

1. 基本的单元测试

1
2
3
4
5
6
7
# test_sample.py
def add(a, b):
return a + b # 定义一个简单的加法函数

def test_add():
assert add(2, 3) == 5 # 测试add函数,检查2 + 3是否等于5
assert add(-1, 1) == 0 # 测试add函数,检查-1 + 1是否等于0

运行测试:

1
pytest test_sample.py  # 执行测试脚本,pytest会自动发现test开头的函数并运行

2. 参数化测试

1
2
3
4
5
6
7
8
9
10
# test_parametrize.py
import pytest

@pytest.mark.parametrize("a, b, expected", [
(1, 2, 3), # 测试用例1
(5, 5, 10), # 测试用例2
(-1, 1, 0), # 测试用例3
])
def test_add(a, b, expected):
assert add(a, b) == expected # 使用参数化函数测试不同输入的期望结果

运行测试:

1
pytest test_parametrize.py  # 执行参数化测试脚本

3. 测试异常

1
2
3
4
5
6
7
# test_exceptions.py
def divide(a, b):
return a / b # 定义一个除法函数

def test_divide_by_zero():
with pytest.raises(ZeroDivisionError): # 期望捕获ZeroDivisionError异常
divide(1, 0) # 测试除以零的情况

运行测试:

1
pytest test_exceptions.py  # 执行测试脚本,检查对除以零的处理

以上代码示例展示了 pytest 的多种基础用法,包括基本的单元测试、参数化测试及异常处理等,帮助开发者快速入门 pytest 框架。

强烈建议大家关注本人的博客全糖冲击博客,在这里,我整理了所有 Python 标准库的使用教程,方便您快速查询和学习。通过我的博客,您可以掌握更多的 Python 编程技巧,提升自己的技术水平,并随时获取最新的学习资源。我相信,这对每一位希望在 Python 领域取得突破的开发者都极具帮助,因此请不要错过!

软件和库版本不断更新

由于软件和库版本不断更新,如果本文档不再适用或有误,请留言或联系我进行更新。让我们一起营造良好的学习氛围。感谢您的支持! - Travis Tang