pytest:助你编写更好的程序¶
pytest 框架使编写小型、可读的测试变得简单,并且可以扩展以支持应用程序和库的复杂功能测试。
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-9.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 使用的基础介绍,请参阅 快速开始。
特性¶
提供失败 断言语句 的详细信息(无需记忆
self.assert*名称)自动发现 测试模块和函数
模块化 Fixtures,用于管理小型或参数化的长生命周期测试资源
可以直接运行 unittest(包括 trial)测试套件
Python 3.10+ 或 PyPy 3
丰富的插件架构,拥有超过 1300+ 个 外部插件 和蓬勃发展的社区
文档¶
Bug/需求¶
请使用 GitHub 问题追踪器 来提交 Bug 或功能需求。
支持 pytest¶
Open Collective 是一个面向开放透明社区的在线筹款平台。它提供工具来筹集资金并完全透明地分享财务状况。
它是希望向项目直接进行一次性或每月捐赠的个人和公司的首选平台。
请参阅 pytest collective 中的更多详细信息。
企业版 pytest¶
作为 Tidelift 订阅的一部分提供。
pytest 和数千个其他软件包的维护者正与 Tidelift 合作,为您构建应用程序所使用的开源依赖项提供商业支持和维护。在向您所使用的特定依赖项维护者付费的同时,节省时间、降低风险并改善代码健康状况。
安全性¶
如果您发现了一个您认为属于安全漏洞的问题,请不要创建 Issue,而是通过 新的安全公告 进行报告。