目錄:
- 安裝及入門
- 使用和調用方法
- 原有TestSuite使用方法
- 斷言的編寫和報告
- Pytest fixtures:清晰 模塊化 易擴展
- 使用Marks標記測試用例
- Monkeypatching/對模塊和環境進行Mock
- 使用tmp目錄和文件
- 捕獲stdout及stderr輸出
- 捕獲警告信息
- 模塊及測試文件中集成doctest測試
- skip及xfail: 處理不能成功的測試用例
- Fixture方法及測試用例的參數化
- 緩存: 使用跨執行狀態
- unittest.TestCase支持
- 運行Nose用例
- 經典xUnit風格的setup/teardown
- 安裝和使用插件
- 插件編寫
- 編寫鉤子(hook)方法
- 運行日志
- API參考
- 優質集成實踐
- 片狀測試
- Pytest導入機制及sys.path/PYTHONPATH
- 配置選項
- 示例及自定義技巧
- Bash自動補全設置
安裝和使用插件
本節討論如何安裝和使用第三方插件。有關編寫自己的插件的信息,請參閱編寫插件。
安裝第三方插件可以通過以下方式輕松完成pip
:
pip install pytest-NAME
pip uninstall pytest-NAME
如果安裝了插件,則pytest
自動查找并集成它,無需激活它。
這是一些流行插件的小注釋列表:
- pytest-django:使用pytest集成為django應用程序編寫測試。
- pytest-twisted:為扭曲的應用程序編寫測試,啟動反應堆并處理測試函數的延遲。
- pytest-cov:覆蓋率報告,與分布式測試兼容
- pytest-xdist:將測試分發到CPU和遠程主機,以盒裝模式運行,允許分段故障,在looponfailing模式下運行,自動重新運行文件更改的失敗測試。
- pytest-instafail:在測試運行期間報告失敗。
- pytest-bdd和 pytest-konira 使用行為驅動的測試編寫測試。
- pytest-timeout:根據函數標記或全局定義進行超時測試。
-
pytest-pep8:
--pep8
啟用PEP8合規性檢查的選項。 - pytest-flakes:用pyflakes檢查源代碼。
- oejskit:在實時瀏覽器中運行javascript unittests的插件。
要查看具有針對不同pytest和Python版本的最新測試狀態的所有插件的完整列表,請訪問plugincompat。
你還可以通過pytest-pypi.org搜索發現更多插件。
在測試模塊或conftest文件中要求/加載插件
你可以在測試模塊或conftest文件中要求插件,如下所示:
pytest_plugins = ("myapp.testsupport.myplugin",)
加載測試模塊或conftest插件時,也會加載指定的插件。
注意
pytest_plugins
不建議使用非根conftest.py
文件中使用變量的 插件。請參閱 “編寫插件”部分中的完整說明。
注意
該名稱pytest_plugins
是保留的,不應用作自定義插件模塊的名稱。
找出哪些插件是活動的
如果要查找環境中哪些插件處于活動狀態,可以鍵入:
pytest --trace-config
并將獲得一個擴展的測試標題,顯示激活的插件及其名稱。它還會在加載時打印本地插件akaconftest.py文件。
按名稱取消/取消注冊插件
你可以阻止插件加載或取消注冊:
pytest -p no:NAME
這意味著任何后續嘗試激活/加載命名插件都不起作用。
如果要無條件禁用項目插件,可以將此選項添加到pytest.ini
文件中:
[pytest]
addopts = -p no:NAME
或者,僅在某些環境中禁用它(例如在CI服務器中),可以將PYTEST_ADDOPTS
環境變量設置為 。-p no:name
請參閱查找有關如何獲取插件名稱的活動插件。