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

pytest: helps you write better programs

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

pytest 需要: Python 3.8+ 或 PyPy3。

PyPI 包名称: pytest

一个简单的例子

A quick example

# 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 的基本介绍,请参阅: 入门

功能

Features

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

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

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

  • 可以开箱即用地运行 :ref:`unittest <unittest>`(包括试用版)测试套件

  • Python 3.8+ 或 PyPy 3

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

文档

Documentation

  • 入门 - 只需 20 分钟即可安装 pytest 并掌握其基础知识

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

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

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

bug/请求

Bugs/Requests

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

支持pytest

Support pytest

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

它是个人和公司向该项目直接进行一次性或每月捐赠的首选平台。

有关更多详细信息,请参阅 pytest collective

企业版pytest

pytest for enterprise

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

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

了解更多.

安全

Security

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