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

这个 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-4.x.y, py-1.x.y, pluggy-0.x.y
cachedir: $PYTHON_PREFIX/.pytest_cache
rootdir: $REGENDOC_TMPDIR
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
========================= 1 failed in 0.12 seconds =========================

由于 pytest 详细的断言反省,只是简单的 assert 使用语句。见 Getting Started 更多示例。

特征

  • 失败的详细信息 assert statements (不需要记住 self.assert* 姓名);

  • Auto-discovery 测试模块和功能;

  • Modular fixtures 用于管理小型或参数化的长期测试资源;

  • 可以运行 unittest (包括审判)和 nose 测试套件开箱即用;

  • python python 3.5+和pypy 3;

  • 丰富的插件架构,超过315+ external plugins 繁荣的社区;

文档

请看 Contents 完整的文档,包括安装、教程和PDF文档。

错误/请求

请使用 GitHub issue tracker 提交错误或请求功能。

Changelog

咨询 Changelog 每个版本的修复和增强。

许可

版权所有Holger Krekel等人,2004-2017。

根据 MIT 许可证,pytest是免费的开源软件。