TDD (test odaklı geliştirme) ile kullanmaya çalışıyorum pytest
.
kullandığımda konsola pytest
gitmeyecek .print
print
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 unittest
modülü, her şey tam olarak neye ihtiyacım olan varsayılan olarak basılmış olur. Ancak pytest
baş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.