Pytest - Conftest.py
Bu dosyadaki fikstür işlevlerini, birden çok test dosyasında erişilebilir kılmak için tanımlayabiliriz.
Yeni bir dosya oluştur conftest.py ve aşağıdaki kodu buna ekleyin -
import pytest
@pytest.fixture
def input_value():
input = 39
return input
Düzenleyin test_div_by_3_6.py fikstür işlevini kaldırmak için -
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
Yeni bir dosya oluştur test_div_by_13.py -
import pytest
def test_divisible_by_13(input_value):
assert input_value % 13 == 0
Şimdi dosyalarımız var test_div_by_3_6.py ve test_div_by_13.py içinde tanımlanan fikstürü kullanmak conftest.py.
Aşağıdaki komutu çalıştırarak testleri çalıştırın -
pytest -k divisible -v
Yukarıdaki komut aşağıdaki sonucu üretecektir -
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
==========================
Testler aynı dosyada fikstür arayacaktır. Fikstür dosyada bulunmadığından, conftest.py dosyasındaki fikstürü kontrol edecektir. Bulunduğunda, fikstür yöntemi çağrılır ve sonuç, testin giriş bağımsız değişkenine döndürülür.