मैं अपने परीक्षणों के लिए आवश्यक विभिन्न सेटअप के साथ बेस कक्षा बनाने की कोशिश कर रहा हूं। मैं चाहता हूं कि मेरे सभी परीक्षण इस बेस कक्षा से विरासत में प्राप्त हों। धावक के रूप में मैं py.test का उपयोग करता हूं।py.test उन परीक्षणों को एकत्र नहीं करता है जो 'ऑब्जेक्ट' से विरासत में नहीं हैं
लेकिन जब मैं ऐसा करने की कोशिश कर रहा हूं, py.test बेस कक्षा से विरासत में प्राप्त इन परीक्षणों को एकत्र नहीं करता है, और नतीजतन यह उन्हें नहीं चलाता है। दस्तावेज़ीकरण में कोई उपयोगी जानकारी नहीं मिली।
शायद किसी को पहले ऐसे मुद्दों का सामना करना पड़ा? कोई विचार?
धन्यवाद।
पीएस जब परीक्षण ऑब्जेक्ट से विरासत में प्राप्त होते हैं तो सब कुछ ठीक काम करता है। Py.test उन्हें देखें और सही ढंग से चलाएं। कोड की
उदाहरण:
मेरे बेस वर्ग:
class BaseClass(object):
"""BaseClass"""
def __init__(self):
super(BaseClass, self).__init__()
self.bla = 'bla'
मेरे टेस्ट वर्ग:
import pytest
from base_class import BaseClass
class TestSmth(BaseClass):
def test_test(self):
test_instatnce = TestSmth()
print test_instatnce.bla
if __name__ == '__main__':
pytest.main([__file__, '-v'])
आउटपुट:
============================= test session starts ==============================
platform darwin -- Python 2.7.2 -- pytest-2.3.3 -- /usr/bin/python
collecting ... collected 0 items
=============================== in 0.01 seconds ===============================
[Finished in 0.4s]
एलेक्स, धन्यवाद! यही वही है जो मुझे चाहिए! –
फ़िक्स्चर फ़ंक्शंस को स्कोप द्वारा क्रमबद्ध किया जाता है, इसलिए सभी क्लास-स्कोप्ड फ़िक्स्चर फ़ंक्शन-स्कोप्ड वाले से पहले निष्पादित होंगे। प्रत्येक दायरे में आदेश परिभाषित नहीं किया गया है, वर्णमाला हो सकता है लेकिन यह सह-आकस्मिक होगा। – hpk42
@ एचपीके 42, यह एक कक्षा के भीतर वर्णमाला में है। :) आप इसे अपने लिए आजमा सकते हैं: https://bitbucket.org/alex_okrushko/pytest-class-init-order/commits/e3f316d6597c57e22a82362643197140 –