TDD (test odaklı geliştirme) ile kullanmaya çalışıyorum pytest.
kullandığımda konsola pytestgitmeyecek .printprint
pytest my_tests.pyÇalıştırmak için kullanıyorum .
documentation: Varsayılan olarak çalışması gerektiğini söylemek gibi görünüyor http://pytest.org/latest/capture.html
Fakat:
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.
Standart çıktı konsoluma hiçbir şey yazdırılmıyor (sadece normal ilerleme ve kaç testin başarılı / başarısız olduğu).
Ve test ettiğim script baskı içeriyor:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
In unittestmodülü, her şey tam olarak neye ihtiyacım olan varsayılan olarak basılmış olur. Ancak pytestbaşka nedenlerle kullanmak istiyorum .
Baskı bildirimlerinin nasıl gösterileceğini bilen var mı?
sys.stdout.write("Test")? Nasılsys.__stdout__.write("Test")? İkincisi her zaman konsol olması gereken sistem tanımlı stdout'a yazmalıdır. İki komut farklı şeyler yaparsa, stdout değiştirilir; aynı şeyi yaparlarsa, sorun başka bir şeydir.