プラグインのインストールと使用方法

このセクションでは、サードパーティプラグインのインストールと使用について説明します。 独自のプラグインを作成するには、プラグインの作成 を参照してください。

サードパーティプラグインのインストールは 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 に設定できます。

プラグインの名前を取得する方法については、アクティブなプラグインを見つける を参照してください。