
在我们刚开始学编程时,通常写完代码,能够按预期效果运行,实现功能就算完事了。
但实际上,这样的程序很可能还存在隐藏的错误。例如,一个计算函数在常规输入下正常,但在边界条件下(如空输入或负数)可能失败。手动检查耗时且容易遗漏。
因此,除了开发之外,我们还需要对代码进行测试。
pytest 是一个 Python 测试框架,用于自动化验证代码的正确性。它通过简单的语法和清晰的错误提示,帮助开发者快速发现问题,确保代码在多种场景下可靠运行。
pytest 接口简洁,易于上手,适合单元测试和小型项目。相比 Python 内置的 unittest,pytest 无需复杂的类结构,测试更直观。
1. 安装与运行
pytest 可在控制台通过 pip 命令进行安装:
pip install pytest编写一个简单测试,保存为 test_example.py:
def test_add():
assert 1 + 1 == 2在终端运行 pytest,pytest 会自动发现并执行以 test_ 开头的文件和函数。
选项:使用 pytest -v 查看详细输出,显示每个测试的通过/失败状态。

2. 编写测试用例
测试用例是普通的 Python 函数,需以 test_ 开头,使用 assert 验证结果。
示例 1:测试字符串方法
def test_string():
assert "hello".upper() == "HELLO"示例 2:测试自定义函数
def add(a, b):
return a + b
def test_add():
assert add(2, 3) == 5
assert add(0, 0) == 0测试函数应清晰描述测试目标,并保持独立性。
3. 参数化测试
使用 @pytest.mark.parametrize 测试函数在不同输入下的行为,可减少重复代码。
示例:测试一个乘二函数
import pytest
@pytest.mark.parametrize("input,expected", [(1, 2), (3, 6), (5, 10)])
def test_double(input, expected):
assert input * 2 == expected这样在提高测试覆盖率的同时,可保持代码简洁。

4. 错误提示
如有断言失败,pytest 会提供具体的错误位置,便于定位问题。
示例:
def test_wrong():
assert 1 + 1 == 3运行 pytest,输出会显示 assert 1 + 1 == 3 这行出错。

5. 常见问题
6. 进阶学习
掌握基础后,可进一步探索以下 pytest 高级功能:
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~
感谢转发和点赞的各位~
本文分享自 Crossin的编程教室 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!