pytest:帮助您编写更好的程序

pytest 框架使您可以轻松编写小巧、可读的测试,并且可以扩展以支持应用程序和库的复杂功能测试。

pytest 要求:Python 3.8+ 或 PyPy3。

PyPI 包名称pytest

一个快速示例

# content of test_sample.py
def inc(x):
    return x + 1


def test_answer():
    assert inc(3) == 5

要执行它

$ pytest
=========================== test session starts ============================
platform linux -- Python 3.x.y, pytest-8.x.y, pluggy-1.x.y
rootdir: /home/sweet/project
collected 1 item

test_sample.py F                                                     [100%]

================================= FAILURES =================================
_______________________________ test_answer ________________________________

    def test_answer():
>       assert inc(3) == 5
E       assert 4 == 5
E        +  where 4 = inc(3)

test_sample.py:6: AssertionError
========================= short test summary info ==========================
FAILED test_sample.py::test_answer - assert 4 == 5
============================ 1 failed in 0.12s =============================

由于 pytest 的详细断言自省,只使用了简单的 assert 语句。请参阅 入门 以获取有关使用 pytest 的基本介绍。

功能

  • 详细的失败信息 assert 语句(无需记住 self.assert* 名称)

  • 自动发现 测试模块和函数

  • 模块化固定装置,用于管理小型或参数化长寿命测试资源

  • 可以立即运行 unittest(包括 trial)测试套件

  • Python 3.8+ 或 PyPy 3

  • 丰富的插件架构,拥有 1300 多个 外部插件 和蓬勃发展的社区

文档

  • 入门 - 安装 pytest 并仅在 20 分钟内掌握其基础知识

  • 操作指南 - 分步指南,涵盖广泛的用例和需求

  • 参考指南 - 包括完整的 pytest API 参考、插件列表等

  • 说明 - 背景、关键主题讨论、对高级问题解答

错误/请求

请使用 GitHub 问题跟踪器 提交错误或请求功能。

支持 pytest

Open Collective 是一个开放透明社区的在线资助平台。它提供工具来筹集资金,并完全透明地分享你的财务状况。

对于希望直接向项目进行一次性或每月捐款的个人和公司来说,这是一个理想的平台。

pytest collective 中查看更多详细信息。

企业版 pytest

作为 Tidelift 订阅的一部分提供。

pytest 和其他数千个软件包的维护者正在与 Tidelift 合作,为用于构建应用程序的开源依赖项提供商业支持和维护。节省时间、降低风险并改善代码运行状况,同时向你所使用的确切依赖项的维护者付费。

了解更多信息。

安全性

pytest 从未与安全漏洞相关联,但在任何情况下,要报告安全漏洞,请使用 Tidelift 安全联系人。Tidelift 将协调修复和披露。