कमांड लाइन पर नाम निर्दिष्ट करना जैसे अन्य उत्तर बताते हैं कि काम करता है और उपयोगी है। हालाँकि, जब मैं लिखने के परीक्षण के बीच में होता हूं, तो मैं अक्सर पाता हूं कि मैं केवल उस परीक्षण को चलाना चाहता हूं जिस पर मैं काम कर रहा हूं, और जिन नामों को मुझे कमांड लाइन पर लिखना होगा, वे लिखने के लिए बहुत लंबे और बोझिल हैं। । ऐसे मामले में, मैं एक कस्टम डेकोरेटर और ध्वज का उपयोग करना पसंद करता हूं।
मैं परिभाषित करता हूं wipd("प्रगति डेकोरेटर में काम") इस तरह:
from nose.plugins.attrib import attr
def wipd(f):
return attr('wip')(f)
यह एक डेकोरेटर को परिभाषित करता है @wipdजो उन wipवस्तुओं पर विशेषता निर्धारित करेगा जो इसे सजाता है। उदाहरण के लिए:
import unittest
class Test(unittest.TestCase):
@wipd
def test_something(self):
pass
फिर -a wipकमांड लाइन पर परीक्षण के निष्पादन को चिह्नित करने के लिए उपयोग किया जा सकता है @wipd।
नामों पर ध्यान दें ...
मैं इस तरह की समस्या से बचने के @wipdलिए डेकोरेटर के नाम का उपयोग कर रहा हूं @wip:
import unittest
class Test(unittest.TestCase):
from mymodule import wip
@wip
def test_something(self):
pass
def test_something_else(self):
pass
importकर देगा wipडेकोरेटर एक सदस्य वर्ग के हैं, और सभी वर्ग में परीक्षण का चयन किया जाएगा। attribप्लगइन चेकों एक परीक्षा पद्धति के जनक वर्ग करता है, तो विशेषता चयनित वहाँ भी मौजूद है को देखने के लिए, और विशेषताओं बनाया है और जांच की जाती है कि द्वारा attribकर एक अलग अंतरिक्ष में मौजूद नहीं। इसलिए यदि आप परीक्षण करते हैं -a fooऔर आपकी कक्षा सम्मिलित है foo = "platypus", तो प्लगइन द्वारा कक्षा में सभी परीक्षणों का चयन किया जाएगा।