Pytest को TestSomething नामक वर्ग की उपेक्षा कैसे करें? [डुप्लिकेट]

Aug 16 2020

मैं एक तरह के परीक्षण ढाँचे पर काम कर रहा हूँ जो कक्षाओं में होता है जिसका नाम TestSomethingबेशक होता है। और मैंने महसूस किया कि मेरे परीक्षण विफल हो रहे हैं क्योंकि पाइस्टेस्ट इन कक्षाओं को "आयात करने के साथ ही मुझे तुरंत और चलाने की आवश्यकता है" के रूप में देखता है। और यह बिल्कुल काम नहीं करेगा।

import pytest
from package import TestSomethingClass

क्या पाइस्टेस्ट टेस्ट फ़ाइल से सीधे ऐसे वर्ग को आयात करना संभव है? या शायद मुझे अप्रत्यक्ष रूप से एक स्थिरता के माध्यम से उन का उपयोग करना चाहिए?

यही समस्या अपवादों पर भी लागू होती है, क्योंकि मुझे ऐसा कुछ करने की आवश्यकता होगी

with pytest.raises(TestsSomethingError):

जवाब

4 DavidJ Aug 16 2020 at 03:59

स्पष्ट रूप से अक्षम

आप अपने विशिष्ट वर्ग के भीतर ध्वज को Testसेट करके, शब्द के साथ शुरू होने वाले गुण के द्वारा इस विशिष्ट वर्ग की अनदेखी करने की अनुमति देने में सक्षम हैं__test__False

class TestSomethingClass(object):
    __test__ = False

    def test_class_something(self, object):
        pass

सुविधा: https://github.com/pytest-dev/pytest/pull/1561


विन्यास फाइल

हम आपकी pytest.iniफ़ाइल में कन्वेंशन को पूरी तरह से बदल सकते हैं और सभी वर्ग नामों को अनदेखा कर सकते हैं जो शब्द शुरू करते हैं Example। लेकिन मैं यह सलाह नहीं देता, क्योंकि हम संभावित रूप से सड़क के नीचे अनपेक्षित परिणामों का सामना कर सकते हैं।

#pytest.ini file
[pytest]
python_classes = !Example

पाइस्टेस्ट कन्वेंशन

  • परीक्षण उपसर्ग परीक्षण कार्यों या विधियों कक्षा के बाहर

  • परीक्षण उपसर्ग परीक्षण कार्यों या विधियों का परीक्षण उपसर्ग परीक्षण कक्षाओं के अंदर ( init विधि के बिना )

स्रोत: https://docs.pytest.org/en/stable/customize.html