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-5.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是免費的開源軟件。