Sto cercando di utilizzare TDD (sviluppo test-driven) con pytest
.
pytest
non print
alla console quando uso print
.
Sto usando pytest my_tests.py
per eseguirlo.
La documentation
sembra dire che dovrebbe funzionare per impostazione predefinita: http://pytest.org/latest/capture.html
Ma:
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.
Nulla viene stampato sulla mia console di output standard (solo i normali progressi e il numero di test superati / falliti).
E lo script che sto testando contiene print:
class Blogger(Site):
get_links(self, posts):
print len(posts) # It won't get printed in the test.
Nel unittest
modulo, tutto viene stampato per impostazione predefinita, che è esattamente quello di cui ho bisogno. Tuttavia, desidero utilizzarlo pytest
per altri motivi.
Qualcuno sa come mostrare le dichiarazioni di stampa?
sys.stdout.write("Test")
? Che ne dicisys.__stdout__.write("Test")
? Quest'ultimo dovrebbe sempre scrivere sullo stdout definito dal sistema, che dovrebbe essere la console. Se i due comandi fanno cose diverse, allora stdout viene modificato; se fanno la stessa cosa, allora il problema è qualcos'altro.