Saya mencoba menggunakan TDD (test-driven development) dengan pytest
.
pytest
tidak akan print
ke konsol saat saya gunakan print
.
Saya menggunakan pytest my_tests.py
untuk menjalankannya.
The documentation
tampaknya mengatakan bahwa itu harus bekerja secara default: http://pytest.org/latest/capture.html
Tapi:
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.
Tidak ada yang dicetak ke konsol keluaran standar saya (hanya kemajuan normal dan berapa banyak tes yang lulus / gagal).
Dan skrip yang saya uji berisi cetak:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
Dalam unittest
modul, semuanya akan dicetak secara default, yang persis saya butuhkan. Namun, saya ingin menggunakan pytest
untuk alasan lain.
Apakah ada yang tahu cara membuat laporan cetak ditampilkan?
sys.stdout.write("Test")
? Bagaimana dengansys.__stdout__.write("Test")
? Yang terakhir harus selalu menulis ke stdout yang ditentukan sistem, yang seharusnya menjadi konsol. Jika kedua perintah melakukan hal yang berbeda, maka stdout sedang diubah; jika mereka melakukan hal yang sama, maka masalahnya adalah hal lain.