Pytest 07-構成
4205 ワード
7.構成
7.1 pytestプロファイルの概念
以下に示すように、pytestでよく見られる非テストファイル.
pytest.iniの例は以下の通りです.
[pytest]
addopts = -rsxX -L --tb=short --strict
xfail_stric = true
...
7.1.1 pytest--helpを使用してiniファイルを表示するオプション
>>> pytest --help
[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found:
markers (linelist): markers for test functions
empty_parameter_set_mark (string): default marker for empty parametersets
norecursedirs (args): directory patterns to avoid for recursion
testpaths (args): directories to search for tests when no files or directories are given in
usefixtures (args): list of default fixtures to be used with this project
python_files (args): glob-style file patterns for Python test module discovery
python_classes (args): prefixes or glob names for Python test class discovery
python_functions (args): prefixes or glob names for Python test function and method discovery
7.1.2プラグインはiniファイルオプションを追加できます
前にリストしたオプションを除いて、プラグインとconftestを使用します.pyファイルには、新しいオプションも追加できます.新しいオプションはpytest--helpで表示することもできます.
7.2デフォルトコマンドラインオプションの変更
いくつかのオプションが頻繁で、毎回繰り返し入力したくない場合はpytestを変更できます.iniファイルのaddopts設定は、次のようになります.
[pytest]
addopts = -rsxX -L --tb=short --strict
7.3スペルミスを防ぐためにタグを登録する
カスタムタグはテスト作業を簡素化し、指定したタグを使用してサブセットを実行できますが、タグのスペルを間違えやすいようにします.デフォルトでは、プログラムエラーは発生しません.pytestは、作成された別の新しいタグと見なします.このような状況を避けるためにpytest.iniにタグを登録します.次のようになります.
[pytest]
markers =
smoke: Run the smoke test function
get: Run the get test function
タグ付けが完了したら、pytest--markersで次のように表示できます.
>>> pytest --markers
@pytest.mark.smoke: Run the smoke test function
@pytest.mark.get: Run the get test function
登録されていないタグは--markersリストに表示されません.--strictオプションを使用すると、スペルミスのマークまたはマークされていないマークがエラーになります.
7.4 pytestの最低バージョン番号を指定する
minversionオプションは、テスト・インスタンスを実行するpytestの最低バージョンを指定します.例は次のとおりです.
[pytest]
minversion = 5.2
7.5 pytestを指定して一部のディレクトリを無視する
デフォルトでは、指定したディレクトリとそのサブディレクトリが検索されます.ディレクトリをスキップする場合はnorecursedirsオプションを使用します.
norecursedirsのデフォルト設定は.*build dist CVS _darcs{arch}と*.egg
例は次のとおりです.
[pytest]
norecursedirs = .* build dist CVS _darcs \{arch\} *.egg
7.6テストディレクトリの指定
norecursedirsは、どのディレクトリにアクセスしないかを指定します.testpathsはpytestが実行テストをどこで検索するかを指定します.testpathsはルートディレクトリに対する一連のパスで、テスト例の検索範囲を限定します.pytestがファイルディレクトリパラメータまたはテスト例識別子を指定しない場合にのみ有効になります.次のようになります.
[pytest]
testpaths = test
7.7テスト検索のルールの変更
pytestは、一定のルールに基づいてテストを検索し、実行します.標準的なテスト検索ルールは次のようになります.
通常、pytestのテスト検索ルールはTest*で始まるテストクラスを探し、このクラスには__を含めることはできません.init__()メソッド.しかし、このフォーマットに従ってクラスに名前を付けていない場合(
[pytest]
python_classes = *Test Test* *Suite
2.python_files
とpython_classes類似、python_filesは、次のように検索テストモジュールを変更するルールです.
[pytest]
python_files = test_* *_test check_*
3.python_functions
前の2つと似ていますpython_functionsは、次のように検索テスト関数のルールを変更します.
[pytest]
python_functions = test_* *_test check_*
7.8 XPASSを無効にする
設定xfail_strict=Trueはそれらを@pytestとマークすることができる.mark.xfailで実際に実行されたテスト例もテストに失敗したと報告されています.次のように設定します.
[pytest]
xfail_strict = True
7.9ファイルの衝突を避ける
Pythonのモジュールとパッケージについて説明する際、名前の競合を避けるためにモジュールとパッケージを使用できます.テストの過程で、同じように解決の考え方をすることができます.