मैं pytest
मॉड्यूल के साथ टेस्ट-संचालित विकास का उपयोग करने की कोशिश कर रहा हूं। जब मैं print
लिखता हूं तो pytest print
कंसोल पर नहीं होगा।पीई टेस्ट में कंसोल पर प्रिंट कैसे करें?
मैं py.test my_tests.py
का उपयोग इसे चलाने के लिए ...
documentation
कहना है कि यह डिफ़ॉल्ट रूप से काम करना चाहिए लगता है: http://pytest.org/latest/capture.html
लेकिन:
import myapplication as tum
class TestBlogger:
@classmethod
def setup_class(self):
self.user = "alice"
self.b = tum.Blogger(self.user)
print "This should be printed, but it won't be!"
def test_inherit(self):
assert issubclass(tum.Blogger, tum.Site)
links = self.b.get_links(posts)
print len(links) # This won't print either.
कुछ भी नहीं है मेरी मानक आउटपुट में मुद्रित हो जाता है कंसोल (केवल सामान्य प्रगति और कितने परीक्षण पास/असफल)।
और स्क्रिप्ट है कि मैं परीक्षण कर रहा हूँ प्रिंट शामिल हैं:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
unittest
में मॉड्यूल, सब कुछ डिफ़ॉल्ट रूप से मुद्रित हो जाता है, जो कि मैं वास्तव में क्या जरूरत है। हालांकि, मैं अन्य कारणों से pytest
का उपयोग करना चाहता हूं। ऐसा लगता है कि ऐसी बुनियादी कार्यक्षमता है कि शायद मैं इसे याद कर रहा हूँ !?
क्या कोई जानता है कि प्रिंट स्टेटमेंट कैसे दिखाए जाएंगे?
शायद stdout ओवरराइट किया जा रहा है। यदि आप 'sys.stdout.write (" test ") का उपयोग करते हैं तो क्या होता है? 'Sys .__ stdout __ के बारे में कैसे लिखें (" टेस्ट ")'? उत्तरार्द्ध हमेशा सिस्टम-परिभाषित stdout को लिखना चाहिए, जो कंसोल होना चाहिए। यदि दो आदेश अलग-अलग चीजें करते हैं, तो stdout बदल रहा है; अगर वे एक ही काम करते हैं, तो समस्या कुछ और है। – TheSoundDefense