আমি টিডিডি (পরীক্ষা চালিত বিকাশ) এর সাথে ব্যবহার করার চেষ্টা করছি pytest
।
আমি যখন ব্যবহার করি তখন কনসোলটিতে pytest
যাব না ।print
print
আমি pytest 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
অন্য কারণে ব্যবহার করতে চাই ।
কেউ কী কীভাবে মুদ্রণ বিবৃতি প্রদর্শিত হবে তা জানেন?
sys.stdout.write("Test")
? কীভাবেsys.__stdout__.write("Test")
? পরেরটি সর্বদা সিস্টেম-সংজ্ঞায়িত stdout এ লিখতে হবে যা কনসোল হওয়া উচিত। যদি দুটি কমান্ড আলাদা আলাদা জিনিস করে, তবে স্টাডাউট পরিবর্তন করা হচ্ছে; যদি তারা একই কাজ করে তবে সমস্যাটি অন্যরকম।