プラグインのインストールと使用方法¶
このセクションでは、サードパーティプラグインのインストールと使用について説明します。 独自のプラグインを作成するには、プラグインの作成 を参照してください。
サードパーティプラグインのインストールは pip で簡単に行えます:
pip install pytest-NAME
pip uninstall pytest-NAME
プラグインがインストールされている場合、pytest は自動的にそれを見つけて統合します。 アクティブ化する必要はありません。
いくつかの人気プラグインの注釈付きリストを以下に示します:
pytest-django: django アプリのテストを pytest 統合を使用して作成します。
pytest-twisted: twisted アプリのテストを作成し、リアクターを起動してテスト関数からの deferred を処理します。
pytest-cov: カバレッジレポート、分散テストに対応
pytest-xdist: テストを CPU とリモートホストに分散し、セグメンテーションフォールトを回避するボックスモードで実行し、ファイル変更時に失敗したテストを自動的に再実行する looponfailing モードで実行します。
pytest-instafail: テスト実行中に失敗を報告します。
pytest-bdd: 振る舞い駆動テストを使用してテストを作成します。
pytest-timeout: 関数マークやグローバル定義に基づいてテストをタイムアウトします。
pytest-pep8: PEP8 準拠チェックを有効にする
--pep8オプション。pytest-flakes: pyflakes でソースコードをチェックします。
allure-pytest: allure-framework を介してテスト結果を報告します。
異なる pytest および Python バージョンに対する最新のテストステータスを持つすべてのプラグインの完全なリストを見るには、Pytest Plugin List をご覧ください。
pytest- pypi.org search を通じてさらに多くのプラグインを見つけることができます。
テストモジュールまたは conftest ファイルでのプラグインの要求/読み込み¶
テストモジュールまたは conftest ファイルで pytest_plugins を使用してプラグインを要求できます:
pytest_plugins = ("myapp.testsupport.myplugin",)
テストモジュールまたは conftest プラグインが読み込まれると、指定されたプラグインも読み込まれます。
注釈
非ルート conftest.py ファイルで pytest_plugins 変数を使用してプラグインを要求することは非推奨です。 プラグイン作成セクションの full explanation を参照してください。
注釈
pytest_plugins という名前は予約されており、カスタムプラグインモジュールの名前として使用しないでください。
アクティブなプラグインを見つける¶
環境でアクティブなプラグインを見つけたい場合は、次のコマンドを入力します:
pytest --trace-config
アクティブなプラグインとその名前を表示する拡張テストヘッダーが表示されます。 また、ローカルプラグイン、つまり conftest.py ファイルが読み込まれたときにそれらを表示します。
名前でプラグインを無効化/登録解除する¶
プラグインの読み込みを防ぐか、登録を解除できます:
pytest -p no:NAME
これは、後続のプラグインのアクティブ化/読み込みの試みが機能しないことを意味します。
プロジェクトのプラグインを無条件に無効にしたい場合は、このオプションを pytest.ini ファイルに追加できます:
[pytest]
addopts = -p no:NAME
または、特定の環境 (たとえば CI サーバー) でのみ無効にするには、PYTEST_ADDOPTS 環境変数を -p no:name に設定できます。
プラグインの名前を取得する方法については、アクティブなプラグインを見つける を参照してください。