Pytest-conftest-py

提供:Dev Guides
移動先:案内検索

Pytest-Conftest.py

このファイルにフィクスチャ関数を定義して、複数のテストファイルからアクセスできるようにすることができます。

新しいファイル conftest.py を作成し、以下のコードを追加します-

import pytest

@pytest.fixture
def input_value():
   input = 39
   return input

フィクスチャ関数を削除するには、 test_div_by_3_6.py を編集します-

import pytest

def test_divisible_by_3(input_value):
   assert input_value % 3 == 0

def test_divisible_by_6(input_value):
   assert input_value % 6 == 0

新しいファイル test_div_by_13.py を作成します-

import pytest

def test_divisible_by_13(input_value):
   assert input_value % 13 == 0

これで、 conf_test.py で定義されたフィクスチャを利用する test_div_by_3_6.py および test_div_by_13.py ファイルができました。

次のコマンドを実行してテストを実行します-

pytest -k divisible -v

上記のコマンドは、次の結果を生成します-

test_div_by_13.py::test_divisible_by_13 PASSED
test_div_by_3_6.py::test_divisible_by_3 PASSED
test_div_by_3_6.py::test_divisible_by_6 FAILED
============================================== FAILURES
==============================================
________________________________________ test_divisible_by_6
_________________________________________
input_value = 39
   def test_divisible_by_6(input_value):
>  assert input_value % 6 == 0
E  assert (39 % 6) == 0
test_div_by_3_6.py:7: AssertionError
========================== 1 failed, 2 passed, 6 deselected in 0.09 seconds
==========================

テストは同じファイル内のフィクスチャを探します。 フィクスチャがファイルに見つからないため、conftest.pyファイルでフィクスチャをチェックします。 それを見つけると、フィクスチャメソッドが呼び出され、結果がテストの入力引数に返されます。