पाइस्टेस्ट - फिक्स्चर
फिक्स्चर फ़ंक्शंस हैं, जो प्रत्येक परीक्षण फ़ंक्शन से पहले चलेंगे, जिस पर इसे लागू किया जाता है। फिक्स्चर का उपयोग कुछ डेटा को परीक्षण के लिए करने के लिए किया जाता है जैसे डेटाबेस कनेक्शन, परीक्षण करने के लिए URL और कुछ प्रकार के इनपुट डेटा। इसलिए, प्रत्येक परीक्षण के लिए समान कोड चलाने के बजाय, हम परीक्षण के लिए फ़िक्शन फ़ंक्शन संलग्न कर सकते हैं और यह प्रत्येक परीक्षण को निष्पादित करने से पहले परीक्षण में डेटा को चलाएगा और वापस कर देगा।
एक फ़ंक्शन द्वारा एक स्थिरता के रूप में चिह्नित किया जाता है -
@pytest.fixture
एक परीक्षण फ़ंक्शन इनपुट पैरामीटर के रूप में स्थिरता नाम का उल्लेख करके एक स्थिरता का उपयोग कर सकता है।
एक फ़ाइल बनाएँ test_div_by_3_6.py और नीचे दिए गए कोड को इसमें जोड़ें
import pytest
@pytest.fixture
def input_value():
input = 39
return input
def test_divisible_by_3(input_value):
assert input_value % 3 == 0
def test_divisible_by_6(input_value):
assert input_value % 6 == 0
यहां, हमारे पास एक फिक्स्चर फ़ंक्शन है जिसका नाम है input_value, जो परीक्षण के लिए इनपुट की आपूर्ति करता है। स्थिरता फ़ंक्शन का उपयोग करने के लिए, परीक्षणों को इनपुट पैरामीटर के रूप में स्थिरता नाम का उल्लेख करना होगा।
जब तक परीक्षण निष्पादित किया जा रहा है, तब तक पाइस्टेस्ट को इनपुट पैरामीटर के रूप में स्थिरता नाम दिखाई देगा। यह तब स्थिरता फ़ंक्शन को निष्पादित करता है और लौटाया गया मान इनपुट पैरामीटर में संग्रहीत होता है, जिसका उपयोग परीक्षण द्वारा किया जा सकता है।
निम्नलिखित आदेश का उपयोग करके परीक्षण निष्पादित करें -
pytest -k divisible -v
उपरोक्त आदेश निम्नलिखित परिणाम उत्पन्न करेगा -
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:12: AssertionError
========================== 1 failed, 1 passed, 6 deselected in 0.07 seconds
==========================
हालांकि, दृष्टिकोण अपनी सीमा के साथ आता है। एक परीक्षण फ़ाइल के अंदर परिभाषित एक स्थिरता समारोह केवल परीक्षण फ़ाइल के भीतर एक गुंजाइश है। हम उस स्थिरता का उपयोग किसी अन्य परीक्षण फ़ाइल में नहीं कर सकते हैं। कई परीक्षण फ़ाइलों के लिए एक स्थिरता उपलब्ध कराने के लिए, हमें conftest.py नामक एक फ़ाइल में स्थिरता समारोह को परिभाषित करना होगा।conftest.py अगले अध्याय में बताया गया है।